Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Synchronizing constants/enums in database and code

by hardburn (Abbot)
on Apr 11, 2004 at 13:35 UTC ( [id://344255]=note: print w/replies, xml ) Need Help??


in reply to Synchronizing constants/enums in database and code

Enums are a hack for the fact that MySQL didn't have proper referential integrity until recently. In this case, the better answer is probably to put your column in a seperate table which is linked to with a foreign key. You can use a subselect (another thing MySQL only recently got) to get the data back out:

CREATE TABLE payment_types ( id int primary key auto_increment, name blob not null unique ) type = InnoDB; -- Because InnoDB doesn't suck CREATE TABLE order ( -- or whatever you call it id int primary key auto_increment, pay_type int not null, -- other columns FOREIGN KEY (pay_type) REFERENCES payment_type (id) ON DELETE RESTRICT ) type = InnoDB; -- Example insert INSERT INTO order (pay_type) VALUES ( (SELECT id FROM payment_type WHERE name = 'VISA') )

Yes, there is a performance hit. It's also a much cleaner implementation.

Update: s/FOREGIN/FOREIGN/. Thanks to cLive ;-).

----
: () { :|:& };:

Note: All code is untested, unless otherwise stated

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://344255]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2024-04-18 00:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found