Websites op een directory met 2 databases
Ik ben bezig met een project waar ik helaas niet al te veel over kwijt wil. Maar om mijn vraag toch duidelijk te maken zal ik een voorbeeld geven.
Mijn vraag is of het mogelijk is om meerdere websites met verschillende databases te runnen op een directory.
bijvoorbeeld:
example.com
met database example
en
example2.com
met database example2
Deze websites hebben maken gebruik van de zelfde public folder maar de content word uit hun eigen database gehaald.
Ik zat te denken om in de config file simpelweg het domein te pakken en de tld te verwijderen.
helaas zal dit denk ik niet werken omdat:
Wanneer de zelfde site een ander tld heeft heb ik een conflict.
Wel word er een hoofd database gebruikt om alle klant gegevens vast te houden dus ook domein- en database naam. kan hier een link mee worden gelegd zonder dat er 2 open database verbindingen hoeven te zijn. wil namelijk niet dat elke verbinding moet starten met het opvragen van de tabel naam.
Graag hoor ik ideen van jullie om dit op te lossen of natuurlijk wanneer dit niet kan.
Alvast bedankt voor het lezen mocht er iets niet duidelijk zijn vraag het gerust.
MVG,
Stefan
Ik kan verschillende opzetten bedenken. Het komt vaker voor dat je één "codebase" hebt die je (her)gebruikt voor meerdere domeinen; je zou op grond van hostname een switch-statement kunnen maken wat op grond hiervna een verbinding legt met een specifieke database, maar je geeft zelf al aan dat er ook een centraal gedeelte is met gezamenlijke klantgegevens.
Er valt iets voor te zeggen om alles in één database te stoppen en dan je tabellen of voorziet van een identificatie van een hostname, of je zou kunnen denken aan een hostname-specifieke tabelprefix (waarbij dus dezelfde tabellen meerdere keren voorkomen in een database). Beide methoden hebben voor en nadelen. Ik denk wel dat dit wel kan opwegen tegen een variant met afzonderlijke databases.
Mogelijke voordelen van een enkele database: geen duplicatie van data, geen synchronisatie tussen verschillende database nodig, het gebruik van transacties (wordt een beetje lastig met meerdere databases).
Je zult wel moeten streven naar een zekere balans: als je database te "breed" wordt (teveel hostname-specifieke tabellen) of te "diep" (teveel data in tabellen doordat je alle data van verschillende hostnames in dezelfde tabellen propt).
En dan zul je dus moeten kijken naar de schaalbaarheid van je oplossing: hoeveel sites ga je stapelen? Hoe druk zal elke hostname bezocht worden et cetera.
Maar deze ontwerpbeslissingen hangen heel erg af van de aard en toepassing van de applicatie.
Je kunt dus twee dingen doen: of ons meer info geven wat je probeert te bereiken, of het bovenstaande meenemen in je overwegingen/besluitvorming en zelf een knoop doorhakken.
Gewijzigd op 07/08/2015 01:14:51 door Thomas van den Heuvel
De klant maakt namelijk geen database aan dus kan ik de domein naam + tld gebruiken als database naam.
De reden dat ik voor iedere klant een eigen database wil is omdat ik verschillende pakketten aan bied die ook hun eigen database nodig hebben. En wanneer een klant een database om zeep helpt niet alles er meteen uit ligt en mijn website dus ook.
Het beheer van klant gegevens zullen dan op het maindb komen.
En de website gegevens op het klantdb
of heeft iemand een betere oplossing?
Quote:
En wanneer een klant een database om zeep helpt
Dan heb jij als ontwikkelaar misschien wel de grootste fout gemaakt om het zo te maken dat een klant een database om zeep KAN helpen.
Buiten dat kan zoiets altijd gebeuren en daar ben ik liever op voorbereid