Таблицы с взаимными связями

Lists: Postg스포츠 토토 결과SQL
From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Таблицы с взаимными связями
Date: 2012-01-06 23:09:16
Message-ID: 20120106230916.GF883@apache.rbscorp.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg스포츠 토토 결과SQL

Есть таблица групп пользователей:

| group_id | name

есть таблица пользователей

| user_id | group_id | ... |

То есть каждый пользователь входит в какую-то одну из групп (или не входит
если NULL).

Далее, админы этой системы - тоже пользователи. Они могут создавать
новые группы.

Хочется зафиксировать какая группа создана каким пользователем.

можно конечно сделать отдельную таблицу, но она кажется лишней.
Хочется таблицу групп сделать просто такой:

| group_id | name | creator_id |

Ну и ON DELETE SET NULL если пользователя удалят.

Вопрос. утилиты pg_dump/restore будут корректно с такими вещами
работать? mysqldump создавала ЕМНИП такой дамп, который обратно залить
было непросто. А как в постгрисе с этой проблемой?
--

. ''`. Dmitry E. Oboukhov
: :’ : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537


From: eshkinkot(at)gmail(dot)com ( Сергей Бурладя =?utf-8?B?0L0=?=)
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Таблицы с взаимными связями
Date: 2012-01-07 21:07:52
Message-ID: 87k4532pcn.fsf@home.progtech.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

"Dmitry E. Oboukhov" <unera(at)debian(dot)org> writes:

> Хочется таблицу групп сделать просто такой:
>
> | group_id | name | creator_id |
>
> Ну и ON DELETE SET NULL если пользователя удалят.

Запретите удаление пользователей, сделайте флаг is_active bool :)

> Вопрос. утилиты pg_dump/restore будут корректно с такими вещами
> работать? mysqldump создавала ЕМНИП такой дамп, который обратно залить
> было непросто. А как в постгрисе с этой проблемой?

postgres обещает сам отслеживать все зависимости и восстанавливать таблицы в
корректном порядке. Ограничения внешних ключей в pg создаются _после_ загрузки
данных из резервной копии.

--
С уважением, Сергей Бурладян