Re: Faster db architecture for a twisted table.
От | Hélder M. Vieira |
---|---|
Тема | Re: Faster db architecture for a twisted table. |
Дата | |
Msg-id | 005501c5f872$b1ce1380$580bfea9@hmv02 обсуждение исходный текст |
Ответ на | Faster db architecture for a twisted table. (Rodrigo Madera <rodrigo.madera@gmail.com>) |
Ответы |
Re: Faster db architecture for a twisted table.
|
Список | pgsql-performance |
----- Original Message ----- From: "Andreas Pflug" <pgadmin@pse-consulting.de> > Create a table "sibling" with parent_id, sibling_id and appropriate FKs, > allowing the model to reflect the relation. At the same time, you can drop > "mother" and "father", because this relation is covered too Something like a table describing relationships and a table reflecting relationships from both sides, I guess: create table relationship_type ( relationship_type_id serial, relationship_type_description varchar(20) ) populated with values such as: 1 Child_of 2 Father_of 3 Brother_of 4 Sister_of ... And then create table person_relationships ( source_person_id int4, relationship_type_id int4, target_person_id int4 ) populated with values such as: 1 1 2 (person 1 is child of person 2) 2 2 1 (person 2 is father of person 1) ... It requires a careful maintenance, as almost all (I'd stick with ALL) relationships will require a person to appear twice (as source and as target), but flexible and easy to query. Helder M. Vieira
В списке pgsql-performance по дате отправления: