Hoi Tweakers,
In een applicatie moet ik een keus maken tussen het weergeven van id's aan klanten. De applicatie heeft ondersteuning voor meerdere klanten. Elke klant kan meerdere producten toevoegen.
Keuze 1:
Mysql database met daarin een "customer" table welke een "id" column heeft van het type "int" en auto-increment.
Klant ziet dat wanneer hij/zij een product aanmaakt, het product id wordt verhoogd. Dit hoeft niet perse met één verhoogd te worden omdat andere klanten ook hun eigen producten kunnen toevoegen waarbij het tellertje ook wordt verhoogd.
De klant kan dus "gaten" in de product id's en de applicatie zou een "404 niet gevonden pagina" moeten tonen op moment dat de klant een product id wil bereiken (bijvoorbeeld in de URL (product/edit/{product_id})) welke niet van hem/haar is.
Keuze 2:
Mysql database met daarin een "customer" table welke een "id" column heeft van het type "int" en auto-increment. Daarnaast een column "display_id" welke automatisch wordt verhoogd aan de hand van de laatst toegevoegde "display_id". Hierdoor zal de klant geen "gaten" in zijn/haar product id's zien en hoeft de applicatie niet af te vangen of een product wel of niet van de klant is tijdens het benaderen van het product in bijvoorbeeld de URL (product/edit/{product_id}). Nadeel hiervan is dat grote bulk import lastiger wordt. Bij elke product insert zou namelijk een trigger geschreven moeten worden die de laatste id ophaalt en verhoogd o.i.d
Keuze 3:
Een unieke waarde als display_id gebruiken waardoor het voor de klant niet meer uitmaakt hoe de "id" eruit ziet. Ook hier is het nadeel dat grote bulk import lastiger is omdat (zover ik weet) die unieke waarde in de applicatie gegenereerd moet worden.
De vraag aan jullie is wat de beste keus zou zijn en/of er nog andere keuzes zijn
.
In een applicatie moet ik een keus maken tussen het weergeven van id's aan klanten. De applicatie heeft ondersteuning voor meerdere klanten. Elke klant kan meerdere producten toevoegen.
Keuze 1:
Mysql database met daarin een "customer" table welke een "id" column heeft van het type "int" en auto-increment.
Klant ziet dat wanneer hij/zij een product aanmaakt, het product id wordt verhoogd. Dit hoeft niet perse met één verhoogd te worden omdat andere klanten ook hun eigen producten kunnen toevoegen waarbij het tellertje ook wordt verhoogd.
De klant kan dus "gaten" in de product id's en de applicatie zou een "404 niet gevonden pagina" moeten tonen op moment dat de klant een product id wil bereiken (bijvoorbeeld in de URL (product/edit/{product_id})) welke niet van hem/haar is.
Keuze 2:
Mysql database met daarin een "customer" table welke een "id" column heeft van het type "int" en auto-increment. Daarnaast een column "display_id" welke automatisch wordt verhoogd aan de hand van de laatst toegevoegde "display_id". Hierdoor zal de klant geen "gaten" in zijn/haar product id's zien en hoeft de applicatie niet af te vangen of een product wel of niet van de klant is tijdens het benaderen van het product in bijvoorbeeld de URL (product/edit/{product_id}). Nadeel hiervan is dat grote bulk import lastiger wordt. Bij elke product insert zou namelijk een trigger geschreven moeten worden die de laatste id ophaalt en verhoogd o.i.d
Keuze 3:
Een unieke waarde als display_id gebruiken waardoor het voor de klant niet meer uitmaakt hoe de "id" eruit ziet. Ook hier is het nadeel dat grote bulk import lastiger is omdat (zover ik weet) die unieke waarde in de applicatie gegenereerd moet worden.
De vraag aan jullie is wat de beste keus zou zijn en/of er nog andere keuzes zijn