Hallo,
Ik ben bezig met een webapplicatie waarin ik gebruikers de mogelijkheid wil geven om een produkt X te zoeken. Ik wil dat gebruikers een produkt en de eerste 4 cijfers van hun postcode kunnen invoeren. De webapplicatie moet dan de produkten laten zien die in dat postcodegebied geleverd worden. Nu weet ik niet hoe ik het beste de produkten op postcodegebieden kan mappen in de database.
Eerste plan was om alleen een tabel produkt_postcode(produkt_id, postcode) te maken. Echter, stel dat er 500 produkten uit de catalogus in heel Nederland geleverd worden dan levert dit al 500 * 4750 = 2.4 miljoen records op! (Er zijn zo'n 4750 postcodes in Nederland volgens deze pagina)
Het alternatief:
Ik maak een aparte tabel met 1 kolom waarin ik produkten zet die in heel Nederland geleverd worden: heel_nl(produkt_id). Dan hoef ik die produkten niet in de produkt_postcode tabel op te nemen en dat scheelt elke keer 4750 records in produkt_postcode. Ik zou dit idee verder door kunnen voeren en provincies afsplitsen: produkt_provincie(produkt_id, provincie). Met de laatste oplossing komen alleen produkten die in een gebied kleiner dan 1 provincie geleverd worden in de produkt_postcode tabel. Bovendien wordt de tabel heel_nl dan overbodig, omdat ik een produkt op alle 12 provincies kan mappen.
Voor de invoer van de produkten in het admin-gedeelte gebruik ik de 4 positie postcodetabel, zodat je gelijk per provincie en/of gemeente en/of plaats kan invoeren.
Wat is wijsheid? Mijn gevoel zegt dat simpelweg elk produkt op alle postcodes waar het geleverd wordt mappen in 1 tabel niet slim is. De eerste vraag lijkt me dus duidelijk: is het afsplitsen van provincies de juiste manier? Hoe doet bijvoorbeeld adslwinkel.nl dit?
Ik gebruik overigens Mysql 4.1, maar ik zoek een database-onafhankelijke oplossing.
Ik ben bezig met een webapplicatie waarin ik gebruikers de mogelijkheid wil geven om een produkt X te zoeken. Ik wil dat gebruikers een produkt en de eerste 4 cijfers van hun postcode kunnen invoeren. De webapplicatie moet dan de produkten laten zien die in dat postcodegebied geleverd worden. Nu weet ik niet hoe ik het beste de produkten op postcodegebieden kan mappen in de database.
Eerste plan was om alleen een tabel produkt_postcode(produkt_id, postcode) te maken. Echter, stel dat er 500 produkten uit de catalogus in heel Nederland geleverd worden dan levert dit al 500 * 4750 = 2.4 miljoen records op! (Er zijn zo'n 4750 postcodes in Nederland volgens deze pagina)
Het alternatief:
Ik maak een aparte tabel met 1 kolom waarin ik produkten zet die in heel Nederland geleverd worden: heel_nl(produkt_id). Dan hoef ik die produkten niet in de produkt_postcode tabel op te nemen en dat scheelt elke keer 4750 records in produkt_postcode. Ik zou dit idee verder door kunnen voeren en provincies afsplitsen: produkt_provincie(produkt_id, provincie). Met de laatste oplossing komen alleen produkten die in een gebied kleiner dan 1 provincie geleverd worden in de produkt_postcode tabel. Bovendien wordt de tabel heel_nl dan overbodig, omdat ik een produkt op alle 12 provincies kan mappen.
Voor de invoer van de produkten in het admin-gedeelte gebruik ik de 4 positie postcodetabel, zodat je gelijk per provincie en/of gemeente en/of plaats kan invoeren.
Wat is wijsheid? Mijn gevoel zegt dat simpelweg elk produkt op alle postcodes waar het geleverd wordt mappen in 1 tabel niet slim is. De eerste vraag lijkt me dus duidelijk: is het afsplitsen van provincies de juiste manier? Hoe doet bijvoorbeeld adslwinkel.nl dit?
Ik gebruik overigens Mysql 4.1, maar ik zoek een database-onafhankelijke oplossing.
[ Voor 12% gewijzigd door Anoniem: 42791 op 26-11-2005 01:35 ]