When I last did an invoice-type project, he had the header table with an invoice# as PRIMARY KEY, then we had an invoice_line table with a rowid PRIMARY KEY as auto-increment and a invoice# with a non-unique key INDEX. This worked fine for our purposes, so I would probably go with option #1 I guess.
Regards, Mike Hillyer www.vbmysql.com > -----Original Message----- > From: Mojtaba Faridzad [mailto:[EMAIL PROTECTED] > Sent: Thursday, June 19, 2003 9:16 AM > To: [EMAIL PROTECTED] > Subject: selecting PRIMARY KEY when there is no unique value > > > Hi, > > In a docuement such as Invoice Form, we have a header and a couple of > records for the detail. In header table, Invoice# can be the > PRIMARY KEY but > in detail table, Invoice# is not unique. I think there are > two solutions to > choose a Primary Key (in MyISAM type) : > > 1) Adding an id field ( auto_increment ) and choose it as PRIMARY KEY > in this case we have to add another index on Invoice# for > making relation > with the header table > > 2) There is another field in detail table with "timestamp" > type for keeping > the last change on the record. I want to select ( Invoice# + > myTimestamp ) > for PRIMARY KEY. in this case I don't need to add a new > fields ( id ) and > another index ( on Invoice# ) to the table. > > which one do you prefer and usually use? > > thank > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: > http://lists.mysql.com/mysql?> [EMAIL PROTECTED] > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]