Search Postgresql Archives

Re: data modeling question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Brandon Metcalf wrote:
I asked a question similar to this a couple of weeks ago, but the
requirement has changed a bit and I want to be sure I'm designing my
tables correctly.

I have the following table:

  CREATE TABLE workorder (
    number    VARCHAR(8),
    quantity  INTEGER,
    generic   BOOLEAN,

    PRIMARY KEY (number)
  );

If generic is true, number will need to be associated with at least
one other number in the same table.  I need to ensure the integrity of
this association.  So, I'm thinking a second table:

  CREATE TABLE generic (
    gnumber   VARCHAR(8),
    number    VARCHAR(8),

    PRIMARY KEY (gnumber, number),

    FOREIGN KEY (gnumber)
      REFERENCES workorder(number)
      ON DELETE RESTRICT
      ON UPDATE CASCADE,

    FOREIGN KEY (number)
      REFERENCES workorder(number)
      ON DELETE RESTRICT
      ON UPDATE CASCADE
  );

Any better way of doing this?


I think that will work.  There might be one alternative you could look at.  Add a parent field to workorder and drop generic all together.   BUT that would only let any workorder have one parent.  Not sure if you need to have a workorder point back to multiple parents.  Also it makes query'ing out a little harder.  (Personally I think having the second table makes queries easier)

If you do keep the generic table, I was not sure at first what the fields meant, the naming was a little confusing.  I'd recommend names like:

orignumber and altnumber or assocnumber or something.

-Andy

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux