Ik heb weer een vaag topicje bedacht naar aanleiding van een eenvoudig probleempje wat ik tegenkwam vandaag. Een voorbeeldje voor de duidelijkheid:
We hebben een tabelletje met orders. Daarin een kolom statusid, waarin aan wordt gegeven wat de status is (in behandeling/nieuw/afgekeurd/enz.) Deze statussen staan natuurlijk ook allemaal netjes in een tabelletje met een id als primary key.
Er komt en nieuwe order binnen, de status moet dus op nieuw komen te staan.
De tabel statussen kan met een update veranderd worden maar normalerwijze niet door de gebruikers. Wel moet het in de db staan vanwege vertalingen van de leesbare naam.
de vraag: hoe ga je hier mee om?
a. eerst de id opzoeken: SELECT id FROM statussen WHERE naam='NEW'
b. je hebt al de id's standaard gecached in één of andere include en hoopt dat deze nog in de database staat
c. een select into query gebruiken
d. je hebt je applicatie beter ontworpen/uitgedacht en komt dit probleem nooit tegen.
//titel
We hebben een tabelletje met orders. Daarin een kolom statusid, waarin aan wordt gegeven wat de status is (in behandeling/nieuw/afgekeurd/enz.) Deze statussen staan natuurlijk ook allemaal netjes in een tabelletje met een id als primary key.
code:
1
2
3
4
5
6
7
8
9
| tabel orders -id -klantid -statusid tabel statussen -id -naam (standaard naamgeving: NEW/BOUNCED/enz) -leesbare naam (nieuwe offerte/enz) |
Er komt en nieuwe order binnen, de status moet dus op nieuw komen te staan.
De tabel statussen kan met een update veranderd worden maar normalerwijze niet door de gebruikers. Wel moet het in de db staan vanwege vertalingen van de leesbare naam.
de vraag: hoe ga je hier mee om?
a. eerst de id opzoeken: SELECT id FROM statussen WHERE naam='NEW'
b. je hebt al de id's standaard gecached in één of andere include en hoopt dat deze nog in de database staat
c. een select into query gebruiken
d. je hebt je applicatie beter ontworpen/uitgedacht en komt dit probleem nooit tegen.
//titel
[ Voor 2% gewijzigd door djluc op 18-08-2004 00:40 . Reden: ja ik ben de topictitel vergeten, zelf mijn marker staat er nog ]