My answers interspersed below (and yes, I have read his follow up reply that had additional information)
Giulio <[EMAIL PROTECTED]> wrote on 10/11/2004 05:44:43 AM: > Hi all, > > I have some doubts about how to implement this kind of scenario: > > I have a table of elements in cronological order, let's call it table A: > for every A element, I have a number of elements ordered on a > progressive number. > This could be a simply one-to-many relation, where I can handle a list > of all A records with related B records using a left join. > > the issue is complicated ( for me, at least ) by the fact that the > records related to table A can be of two different types, that have in > common some fields but not others. I mean for every record A I have an > ordered list of mixed records B and C. > > So I'm thinking about pro and cons of three different ways to handle > this problem. > > 1) create tables A,B, and C, with tables B and C having a field id_A > containing the ID of records A they belong, and figure out how to > handle a left join having oh its right side elements from two different > tables > > 2) create tables A,B, and C, and create an intermediate table D to link > table A elements with their related B and C elements, and again figure > out how to handle the list of A elements with linked B and C elements. I would think that this structure (#2) would fit your model the best. Each Table A element could contain various elements of tables B and C depending on the schedule/format of that show. Table D would be your "logging" table that would relate elements of Table A to elements of Tables B or C along with a time stamp (based on what time in the program the element appeared.) I have seen many databases designed with a table like D that needed to contain references to objects of different types. I would create tableD to look something like this: CREATE TABLE content_log ( ID int auto_increment primary key, tableA_id int not null, Object_ID int not null, Object_type (here you have options, you could use a SET, ENUM, INT, or CHAR datatype), TimeOffset time not null ) > > 3) create only tables A and D, where table D is a mix of the fields > from tables B and C with added a fileld rec_type to handle different > fields depending on the record type ( this seems to me to be the > simplest solution, although not the best in term of normalization rules > ) > > Hope it was all clear, > > thanx in advance, > > Giulio So.. if you wanted to find all of the movies shown during Show # 14 SELECT * FROM content_log WHERE tableA_ID = 14 and object_type='movie' /*or however you set up that column*/ > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > Shawn Green Database Administrator Unimin Corporation - Spruce Pine