powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Создаем структуру БД: параметрический внешний ключ
3 сообщений из 3, страница 1 из 1
Создаем структуру БД: параметрический внешний ключ
    #36112633
Bakin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нарисовал структуру БД в IBExpert. Получилось так, что поле Т1.П1 таблицы Т1 должно будет интерпретироваться программой как ссылка (ВК) на поле Т2.П1 таблицы Т2, если значение поля Т1.П2 равно, к примеру, 1, как ссылка на поле Т3.П1 таблицы Т3, если значение поля Т1.П2 равно 2 и как ссылка на поле Т4.П1 таблицы Т4, если значение поля Т1.П2 равно 3.
Иными словами, значения поля Т1.П1 могут и повторяться, но, в зависимости от значения поля Т1.П2 будет являтся ссылкой на поле той или иной таблицы.
2 и 3 нормальные формы вроде выдержены, но что-то подсказывает, что такая структура может стать причиной багов.
Если есть специалисты в области разработки БД, стоит ли оставлять так, либо как-то перестраивать структуру БД?
...
Рейтинг: 0 / 0
Создаем структуру БД: параметрический внешний ключ
    #36112719
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вариант:
Создать родительскую таблицу Т0 и вынести туда общие поля (если есть) для дочерних таблиц Т2, Т3 и Т4
Для каждой записи дочерних таблиц Т2, Т3, Т4 есть единственная запись в родительской Т0. Т0.Тип - поле типаж дочерней таблицы. Ключа к дочерним нет. У всех дочерних есть ключ к Т0. Можно использовать PK дочерних как FK к родительской, то есть ИД дочерних и родительской будут совпадать.
Соответственно Т1 ссылается на Т0.
У Вас тоже нормальный вариант, я его называю использование "абстрактной таблицы T0" (по аналогии с ООП).

С уважением, Naf
...
Рейтинг: 0 / 0
Создаем структуру БД: параметрический внешний ключ
    #36112756
Bakin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, вариант действительно более удачный. А использование "абстрактной" таблицы Т0 настораживает тем, что по сути часть структуры БД переносится на программную часть, вызывая дополнительную проверку при обращении, хотя, наверное это задача триггера.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Создаем структуру БД: параметрический внешний ключ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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