momenteel ontwikkelen we een browser gestuurd mediamanager (plaatjes, pdf's, video bestanden etc) systeem met php en mysql, waarin veel bestanden geplaatst worden, waarbij elk bestand een unieke ID krijgt. deze gaan de invoerders / opvrages van het systeem gebruiken in hun communicatie (mag ik het beeld met ID x op hoge resolutie bestellen).
het systeem moet gaan draaien op verschillende servers op verschillende locaties die periodiek met elkaar synchroniseren. ik ben aan het uitzoeken wat de beste manier is om te zorgen dat elk bestand zijn eigen ID krijgt.
mogelijkheid 1
ik denk eraan om elke server waarop het systeem draait een eigen ID te geven. vervolgens wordt een nieuw bestand ingevoerd, daar rolt (uit mysql) een file-id uit en voeg ik samen met de server ID.
voorbeeld: LH.000.588
de eerste letters staan voor de server (localhost in voorbeeld), de (geformatteerde) cijfers voor het autonummerings-ID.
iemand anders voert op een andere server een ander bestand in: CM.000.588
een andere server-id maar hetzelfde autonummerings-ID.
dit lijkt me technisch 'lelijk':
het autonummeringsveld levert een nieuwe ID op bij een INSERT in de DB, je vervolgens de server_ID, bijv. "LH" moet toevoegen en wegschrijven in een apart veld als bijv. "LH.000.588", waarna je bij de synchronisatie met een andere server onderling inserts gaat maken en de autonummerings-velden niet meer gelijklopen met de samengestelde ID (insert file X van server A met ID "LH.000.588" op server B, waar vervolgens een nieuw autonummerings-ID uitrolt die niet matcht met "LH.000.588").
mogelijkheid 2
1 centrale database die unieke nummers bijhoudt (foreign keys?), waarbij elke server die centrale database moet raadplegen om een nieuwe ID te krijgen. zo krijg je dus niet situaties als LH.000.588 en CM.000.588.
lijkt me performance-wise niet handig om voor elk in te voeren beeld te checken op een centrale server wat de nieuwe ID moet worden. stel de centrale server ligt eruit dan kan de lokale server niet verder.
vraag: welke mogelijkheid is het beste of zijn voor mijn probleem standaard- en/of betere oplossingen?
thanx!
het systeem moet gaan draaien op verschillende servers op verschillende locaties die periodiek met elkaar synchroniseren. ik ben aan het uitzoeken wat de beste manier is om te zorgen dat elk bestand zijn eigen ID krijgt.
mogelijkheid 1
ik denk eraan om elke server waarop het systeem draait een eigen ID te geven. vervolgens wordt een nieuw bestand ingevoerd, daar rolt (uit mysql) een file-id uit en voeg ik samen met de server ID.
voorbeeld: LH.000.588
de eerste letters staan voor de server (localhost in voorbeeld), de (geformatteerde) cijfers voor het autonummerings-ID.
iemand anders voert op een andere server een ander bestand in: CM.000.588
een andere server-id maar hetzelfde autonummerings-ID.
dit lijkt me technisch 'lelijk':
het autonummeringsveld levert een nieuwe ID op bij een INSERT in de DB, je vervolgens de server_ID, bijv. "LH" moet toevoegen en wegschrijven in een apart veld als bijv. "LH.000.588", waarna je bij de synchronisatie met een andere server onderling inserts gaat maken en de autonummerings-velden niet meer gelijklopen met de samengestelde ID (insert file X van server A met ID "LH.000.588" op server B, waar vervolgens een nieuw autonummerings-ID uitrolt die niet matcht met "LH.000.588").
mogelijkheid 2
1 centrale database die unieke nummers bijhoudt (foreign keys?), waarbij elke server die centrale database moet raadplegen om een nieuwe ID te krijgen. zo krijg je dus niet situaties als LH.000.588 en CM.000.588.
lijkt me performance-wise niet handig om voor elk in te voeren beeld te checken op een centrale server wat de nieuwe ID moet worden. stel de centrale server ligt eruit dan kan de lokale server niet verder.
vraag: welke mogelijkheid is het beste of zijn voor mijn probleem standaard- en/of betere oplossingen?
thanx!