Fråga
En stor komplex databas (många tabeller med många många-till-många-relationer) skall publiceras på nätet för både läsning och skrivning av många (flera hundra) samtidiga användare.
Vad skulle ni rekommendera för verktyg?
Jag har funderat på Visual Web Developer + Visual C# + SQL server. (Tips på hur man får till en snygg treskiktslösning mottages tacksamt)
Svar
Hej Jens, det viktigaste valet av verktyg vid webbutveckling kommer troligen vara val av databas. Troligen bör du basera ditt val på vilka typer av förfrågningar du kommer göra. Att tänka på är att en del databaser saknar stöd för vissa typer av förfrågningar, mao inte alla som följer standard.
Många SQL-implementationer har på senare tid fått stöd för det dem saknat, leta gärna genom internet och se om den databas du tänkt använda har stöd för det, bl a kan du finna en sådan lista på Wikipedia. En hel del utvecklare skulle rekommendera MySQL eller PostgreSQL.
Om du väljer att utveckla i ett .Net språk så kan det troligen finnas en fördel att använda Microsoft SQL Server då det utvecklas av samma företag.
Tänk dock på att en komplett IDE inte är den enda lösningen, en vanlig textredigerare och terminal kanske passar dig bättre, som så mycket annat är det en smaksak. Ett intressant alternativ om man vill utveckla för C# hade kanske varit denna kombination, MonoDevelop, Mono C#, PostgreSQL.
Inom den kommersiella världen är Oracle känd för sin prestanda, men även för sin kostnad. En enklare väg till prestanda är att indexera de kolumner som innehåller dina nycklar. En vanliga treskiktslösning som många använder är MVC vilket medför att du lättare kan optimera kod i ena delen utan att påverka övriga delar av systemet.
Tänk dock på dessa kloka ord från Donald E Knuth, ”Premature optimization is the root of all evil”. ”Premature optimization” uppkommer när man låter optimeringar styra över ens design. I stället skall man först satsa sin kraft på att utveckla ett system som är felfritt och stabilt, först då kan man börja optimera sin kod.
När du vet att dina metoder/funktioner returnerar det dem skall och när du vet att kommunikationen inom ditt system fungerar osv, då kan du lägga en stor vikt vid att optimisera dina queries, dessa förbättringar av sql-förfrågningar ger många gånger mer än vad man tror.
Hoppas detta hjälper dig långt på vägen, lycka till.