Re: Database design?
От | Ernesto Baschny |
---|---|
Тема | Re: Database design? |
Дата | |
Msg-id | 3BD59E31.29104.201FDF5@localhost обсуждение исходный текст |
Ответ на | Database design? ("Johnny Jørgensen" <johnny@halfahead.dk>) |
Ответы |
Re: Database design?
Re: Database design? |
Список | pgsql-general |
On 23 Oct 2001 at 9:11, Johnny Jørgensen wrote: > This may be slightly off topic, as it probably isnt all that rdbm > specific. If so, holler at me, and I'll learn.. > > I have a bunch of entities (book,e- book,author,country,cd,publisher) > which are quite different in relational nature, and therefore can't > easily be squeezed into the same table. > > Common for all of them, however, is the need for a description. Thing > is, there needs to be descriptions in (currently) 4 different > languages, and the count may rise. > > This relation is of a 1-N nature for each entity, and so, i've figured > out, I use the unique id from the (book, e-book, author etc) tables as > a foreign key in the description table, thus forging a relation. > > The question (at last) is, how to have a foreign key reference more > than one table? Obviously a description won't belong to an e-book, a > country and a publisher at the same time, but only one of them. > > Is my design fundamentally unsound, should there be a description > table for each of the listed entities, or what am I to do? Maybe you could use inherited tables to achieve that. CREATE TABLE items ( id SERIAL, description TEXT, PRIMARY KEY (id) ) CREATE TABLE books ( isbn VARCHAR(15), other_field INTEGER, ... ) INHERITS (items); CREATE TABLE cds ( title VARCHAR(15), ... ) INHERITS (items); With this you can define the "general" attributes in the "items" table and more specific things in the specific tables. The primary key for all those tables will be kept unique across tables, since they will all refer to the same SEQUENCE. Maybe there are more elegant and correct solutions, I am just beginning my jorney to the PgSQL world (this, for example, couldn't be done with MySQL). -- Ernesto Baschny <ernst@baschny.de> http://www.baschny.de - PGP Key: http://www.baschny.de/pgp.txt Sao Paulo/Brasil - Stuttgart/Germany Ernst@IRCnet - ICQ# 2955403
В списке pgsql-general по дате отправления: