jschell wrote:
Interesting analogy which is really a bad one. Unless you are suggesting that true and false is going to "grow" in to a tri-state value.
Stretching too much it's meaning, a tri-state could be handled by allowing null values; but I actually would never do that. The analogy referred to the fact that "it's always been like this" isn't a really string argument, IN MY PERSONAL AND HUMBLE OPINION, of course. But anyone is free to act as he likes, unless he hurts someone [else?]. There are lot of applications happily using char representation of data, some store directly the entire description of the enumeration or foreign keys (I've also seen date stored as char in the ISO format for sorting reason).
jschell wrote:
First if you are talking about display values, such as in a GUI, then there is something wrong with your design.
You can take for granted, but maybe for other reasons, since I think I didn't express properly: 1) If I need to display "custom" values, I use a foreign key on another table; what I call enumerations are values which are invariant, regardless of the culture: just as a very quick example I may have an enumeration which tells me if it's an invoice or a refund to guide the flow of the program; then I have a separate table to store descriptive values for documents: I may have several types of invoices with different description, all of type 0=Invoice, refunds of type 1, and so on (it's just a quick example, not a full analysis). In the terminology we use in our company enumerations are NOT stored anywhere - but we use this terminology just to clearly tell them from foreign table; they are usually shown - if they really are - just in applications accessed only to higly trained staff, usually ourselves (trained on our application, I mean, not generally, of course) . 2) I'm not claiming that every single value in my database is written in such a way that it is appropriate for other languages; my attempt is to avoid to be tied to a particular language/culture in the database
jschell wrote:
Is the Italian version of the MS SQL Server going to display the 'bit' in French?
Mais ouis, with a very naive accent:-D Of course, not, it shows just 0 and 1. But what happens in Italy when someone from France uses a char(1) in Italy, to see her O(uis) refused by the Italian constraint applied by the dba