That's pretty cool. I may look into those. I just like being able to
define that the data stay in a self-consistent format. Other
programming languages would do well to follow this method. I'm
programming my front-end in PHP. I should be able to say
INT i CHECK (i > 0);
when I declare it in PHP, for instance, but this isn't possible; they
don't even have strong typing!
Anyway, I was just writing a table which holds credit card payment
data. I put in a constraint:
cardnumber VARCHAR(20) CHECK (luhn10(cardnumber)),
right in the table, so no matter how screwed up anything is, only
valid card numbers can go in the table. I put foreign key constraints
in so that none of the domain names can ever be without an owner (it's
a domain registry project). This is how programming should be.
Compare this to PHP or perl, where all variables are strings, or C
where there are memory leaks all over the place unless the programmer
is very skilled and careful.