> > > Part of me agrees with you, on a "Pure SQL level". but then why would
> > > anyone ever use ENUM or SET?
> > I wouldn't :-)
> > IMO, they're abominations that are to be avoided.
> Again, part of me agrees with you. But part of me, particularly the
> part that says "our queries need to be optimized as much as possible,
> so our customers will be happy," thinks that ENUM and SET are
> non-standard, MySQL specific ways to create normalized data without
> having an extra table, and thus an extra join, and thus more
> computation, and thus a slower query.
That's wrong, if you use "set", the data isn't normalized cause you're
storing multiple values in a column.
> Tell me, do you also create your own sequences in MySQL instead of
> using the AUTO_INCREMENT feature? Because that, too, is an
> abomination in the same way.
One way to do it is to create an auto-inc table, but this is besides
the point for ENUM/SET.
> I use ENUM a lot, successfully, and when I want to add another ENUM
> value to a table (I never delete one), I have a script that runs a
> show table, gets the ENUM field in question, gets all the values, and
> alters the table modifying the column with the correct values (all the
> current values + the new one). I've never had a problem with it yet
> (knock wood).
In other words: modifying metadata to adjust the system for data
requirements ;-) ... This also means there's no easy way to automate
Database Workbench - tool for InterBase, Firebird, MySQL, Oracle & MS SQL
Database development questions? Check the forum!