On 19-Jun-2003 Mojtaba Faridzad wrote:

Please don't hi-jack threads.

> 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?

Number one (with a composite key).

table invoice_line (
  idinv int unsigned not null,             // invoice number
  line tinyint unsigned auto_increment,    // line number
  idprod, qty, uom, price, cogs,           // product shipped
  ...
  primary key(idinv, line)
)

Regards,
-- 
Don Read                                       [EMAIL PROTECTED]
-- It's always darkest before the dawn. So if you are going to 
   steal the neighbor's newspaper, that's the time to do it.
                            (53kr33t w0rdz: sql table query)


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to