Путаница с СУРБД - PullRequest
       28

Путаница с СУРБД

0 голосов
/ 15 апреля 2009

Я пытаюсь отсортировать базу данных за сайтом моей компании.

Мы работаем как с сайтами, так и с резидентами. На данный момент ссылка на сайт включена в таблицу Residents в качестве внешнего ключа, но, очевидно, это только в 1NF.

Ссылки на сайты имеют вид nnnnn (например, 12345). Каждый житель имеет собственную ссылку на Сайте в форме nnn (начиная с 001 и заканчивая максимум 999).

Проблема в том, что когда я беру 2NF:

Сайт (Reference, Название, Charge)

ординатура (SiteReference, ResidentReference,)

Resident (Reference, Адрес, имя пользователя, Пароль)

Resident Reference никогда не будет однозначно идентифицировать одного резидента, так как, если есть 2 сайта, то будет 2 001. Я не могу использовать имя пользователя, так как это поле заполняется только один раз (и если!) Они зарегистрировались для нашего веб-сервиса. Я бы просто ввел новый идентификатор автономного номера для жителей, но есть кое-что, что меня раздражает, что есть более элегантное решение. Кто-нибудь может подсказать что это такое?

1 Ответ

1 голос
/ 15 апреля 2009

Вам необходимо «освободить» резидентскую ссылку с сайта - например, сделайте его ResidentID и убедитесь, что каждый ResidentID глобально уникален в таблице Resident. Каждый сайт также должен иметь глобально уникальный SiteID в таблице Site.

Тогда и только тогда вы сможете создать хорошую схему БД.

В таблице Residency будет указана связь между резидентами (однозначно идентифицированными по их ResidentID) и сайтами (опять же - однозначно идентифицированными по их SiteID).

Марк

...