tirsdag 15. juli 2003, 01:53, skrev Kjetil Torgrim Homme:
på radnivå er det gjerne reine inndatasjekkar, slik som
kjonn CHAR(1) CHECK (kjonn IN ('M','K')),på tabellnivå er det oftare forretningslogikk som vert lagt inn.
Du har et godt poeng her. Som du skriver så skjer ofte sjekk av inndata på radnivå. Dette gjøres selv om «inndata-sjekking» burde skje nærmest mulig brukergrensesnittet (noe få følger selv om man aldri så mye anbefaler «Design by contract»[1]).
eg synest ikkje "kontrollskranke" er noko spesielt godt ord, men eg kan vere med på at det problematisk at ein har "framandnøkkelskranke" men "valideringsregel".
Ja, vi snakker om skranker her. Ja man kan «missbruke» skranker for å sjekke inndata. At det finnes grensetilfeller var Gerhard Skagestein[2] inne på i sine forelesninger rundt bruk av begrepet skranker. Ordet skranke skal heller ikke brukes i utide som du også impliserer. Man kaller det fremmednøkkel uten ordet skranke på slutten selv om fremmednøkkel er en skranke :-)
Ja, jeg ser at kontrollskranke kan brukes som en valideringsregel, men jeg ser også av andre eksempler[3] at det ikke brukes slik. Derfor kan begrepet valideringsregel være for snevert fordi det kun handler om typesjekking hvor «skrankeeffekten» går tapt. Ved å kalle en skranke med «valideringseffekt» for kontrollskranke burde man være i mål selv om det er et rart ord ;-).
- Knut
[1] http://www.wikipedia.org/wiki/Design_by_contract [2] http://heim.ifi.uio.no/~gerhard/ [3] http://www.ems-hitech.com/pgmanager/docs.phtml?docID=170