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

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

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

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


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


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