Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация ключевого поля / 5 сообщений из 5, страница 1 из 1
08.06.2006, 09:26
    #33779474
oreshnik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация ключевого поля
Необходимо хранить в БД сведения о некой сети
Сеть состоит из пролетов у кот. есть начальный узел и узел направления (ID узлов известны и понятны юзеру).Т. о. один пролет описывается двумя записями в таблице
Узел____Направл
1____________2
2____________1
2____________3
3____________2
Есть два вида данных общие для пролета (например, дата запуска в работу) и уникальные для каждого узла (например серийный номер оборудования).
Понятно что, общие данные необходимо выделить в отдельную таблицу "Пролеты", смущает как задать ключевое поле для такой таблицы и механизм ввода данных, т.е. чтобы юзер вводя новую пару Узел/Направл автоматом получал одну запись в табл "Пролеты"
...
Рейтинг: 0 / 0
08.06.2006, 10:53
    #33779754
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация ключевого поля
Таблица может иметь несколько ограничений уникальности. Одно из них в Вашем случае - уникальность пары начальный_узел_ИД и узел_направления_ИД.
...
Рейтинг: 0 / 0
08.06.2006, 13:39
    #33780493
oreshnik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация ключевого поля
<<уникальность пары начальный_узел_ИД и узел_направления_ИД.>>
Согласен для для таблицы с узлами сочетание начальный_узел_ИД и узел_направления_ИД будет однозначно указывать на нужную запись.
А вот для таблицы с общими данными нужно иметь ключ кот. уникален для двух пар и как-нибудь автоматом его формировать, т. е.
начальный_узел_ИД-------узел_направления_ИД----------код_пролета
1------------------------------2------------------------------А
2------------------------------1------------------------------А
2------------------------------3------------------------------Б
3------------------------------2------------------------------Б
...
Рейтинг: 0 / 0
08.06.2006, 18:29
    #33781714
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация ключевого поля
Не совсем понятно, для чего две записи про пролет.
Чем плохо
ПРОЛЕТ (ИД, УЗЕЛ1_ИД, УЗЕЛ2_ИД, Информация_направления_1_2, Информация_направления_2_1)
КЛЮЧ (ИД)
КЛЮЧ (УЗЕЛ1_ИД, УЗЕЛ2_ИД).

Если все же нужно
ПРОЛЕТ (ИД, Общая информация) КЛЮЧ (ИД).
НАПРАВЛЕНИЕ (Пролет_ИД, Начальный_узел_ИД, Узел_направления_ИД, Информация_направления)
КЛЮЧ (Пролет_ИД, Начальный_узел_ИД)
КЛЮЧ (Пролет_ИД, Узел_направления_ИД)
КЛЮЧ (Начальный_узел_ИД, Узел_направления_ИД)

То можно еще задать требование парности:
ВНЕШНИЙ КЛЮЧ (Пролет_ИД, Начальный_узел_ИД) ССЫЛАЕТСЯ НА НАПРАВЛЕНИЕ (Пролет_ИД, Узел_направления_ИД)

ВНЕШНИЙ КЛЮЧ (Пролет_ИД, Узел_направления_ИД ) ССЫЛАЕТСЯ НА НАПРАВЛЕНИЕ (Пролет_ИД, Начальный_узел_ИД)


Но тогда добавление/изменение удаление парных запиcей нужно делать одним предложением.
...
Рейтинг: 0 / 0
08.06.2006, 18:54
    #33781767
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация ключевого поля
И остается вопрос с ровно двумя записями для пролета - декларативная ссылочная целостность умеет считать лишь до одного, а нессылочным ограничениям вообще кроме собственной записи ничего видеть не положено.:(
В пределах сессии решается триггером, а в многопользовательском режиме...
проблема
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация ключевого поля / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]