Perhaps what is confusing you is that you never explicitly define a relationship as such: there are no relationship objects. Rather, at the table leve you define a foreign key that references the primary key of another table.
Second, you must use the InnoDB or BDB table types to get foreign keys. Both tables have to be InnoDB type and there must be an index where the foreign key and the referenced key are listed as the first columns. InnoDB does not auto-create indexes on foreign keys or referenced keys: you have to create them explicitly. Finally, here is the (relevant part of the) syntax: [CONSTRAINT symbol] FOREIGN KEY (index_col_name, ...) REFERENCES table_name (index_col_name, ...) [ON DELETE CASCADE | ON DELETE SET NULL] Just tack a clause like this onto the end of your CREATE TABLE statement. If your tables are already built, then you can use ALTER TABLE instead. Look in the manual under CREATE TABLE and ALTER TABLE. hth, Arthur -----Original Message----- From: Hammons Randy G SSgt 612 ACOMS/SCXX [mailto:Randy.Hammons@;dm.af.mil] Sent: Monday, October 21, 2002 3:48 PM To: [EMAIL PROTECTED] Subject: RE: how do you define a relationship? Unfortunately this goes well beyond the scope of my original question. Although the inputs that you all have provided thus far have been a very good read, I still don't grasp the concept of defining a relationship. Is it simply referring to a primary key in a field other than the one where the key was defined? Or is there some other way to define a key that I don't see? All I'm looking for is a simple example, syntax excerpt, etc...that shows me (only the "slow learner" level) exactly how to define a relationship. -----Original Message----- From: Jan Steinman [mailto:Jan@;Bytesmiths.com] Sent: Monday, October 21, 2002 12:07 PM To: [EMAIL PROTECTED] Subject: RE: how do you define a relationship? >From: "Arthur Fuller" <[EMAIL PROTECTED]> > >Unfortunately that oversimplifies the situation. A least a few movies have >more than one director. My motto: "Generalize for the norm; specialize for the exception." The vast majority of movies have but one director. And I suspect that movies with multiple directors have but one who is primary. Keep a single director field, with a second NULL FULLTEXT field for additional directors. The NULL test for the normal case is much cheaper than what you have to go through by assuming that ALL movies have multiple directors! This is how books are handled in large databases. Each has a primary author, and may contain secondary authors. There is no assumption that large numbers of books have multiple, equal authors. This way, you can easily and conveniently list multiples as "Speilberg (et. al.)" without doing joins. An interested browser can then go further to find out who the others are. In the other case, each request for a director requires a JOIN. Of course, your particular application may be director-centric, like if you're building a special database to support research on directors. But if it's just a general-purpose movies database, why bog the whole thing down just to suit a few exceptional cases? ---- SQL SQL SQL SQL SQL SQL SQL SQL ---- -- : Jan Steinman -- nature Transography(TM): <http://www.Bytesmiths.com> : Bytesmiths -- artists' services: <http://www.Bytesmiths.com/Services> : Newsletters now on-line at <http://www.Bytesmiths.com/Newsletter> --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php