powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ссылки из одного поля в несколько таблиц
8 сообщений из 8, страница 1 из 1
ссылки из одного поля в несколько таблиц
    #36793517
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в бд есть таблица со списком неких объектов, журнальные данные по которым хранятся в разных таблицах, откуда для построения отчета извлекаются значения столбца val (общего для всех журналов) по этим объектам за период времени

таблица объектов имеет вид (id, title, table_name, obj_Id), где table_name - имя журнала, откуда будет извлекаться val; obj_Id - пк объекта в этом журнале (не совпадает с Id, на самом деле этот ключ составной, но для примера я упростил)

проблема в том, что криво написанные клиенты/чьи-то руки могут в obj_Id могут помещать значения, нарушающие целостность данных, то есть id, которых нет в журнале table_name

вижу вариант, как от этого избавиться: навесить сложное ограничение на сочетание table_name и obj_id, либо же вместо этих двух сделать несколько столбцов table_n_Id, повесить на них fk на нужные таблицы и установить ограничение, что заполнен может быть только один. какой вариант лучше (удобнее для построения отчетных запросов, быстрее выборка, удобнее поддерживать) и почему?

ms sql 2008
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36793601
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill
проблема в том, что криво написанные клиенты/чьи-то руки могут в obj_Id могут помещать значения, нарушающие целостность данных, то есть id, которых нет в журнале table_name

не то написал, имел в виду что в obj_Id могут попадать значения ключа, которых нет в справочниках объектов соотв. типов, и варианты констрейтов будут связаны с этими справочниками, а не с журналами
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36793814
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор, приведите, пожалуйста, схему, иллюстрирующую то, что Вы на словах рассказали
Извините, со слов трудно воспринимается
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36793873
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,



в Table_Name хранятся названия журналов - Table_1, Table_2, ...
нужно сделать чтоб в obj_Id не могли попасть значения, которых нет в соотв-щих Obj_Type_N, рассматриваю вариант разбить Obj_Id на несколько полей Obj_N_id по количеству журналов, навесить FK и убрать поле Table_Name либо при существующей схеме придумать констрейнт на Table_Name + obj_Id.

не могу выбрать что лучше, критерии написал выше
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36793894
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я - за вариантShakillразбить Obj_Id на несколько полей Obj_N_id по количеству журналов, навесить FK и убрать поле Table_Nameпочему - не знаю, честное пионерское
на всякий случай свежак: условие на поля таблицы
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36794079
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, тоже не могу объяснить, но выбрал тот же вариант
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36794111
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill, а чем грозит потеря "целостности данных", почему Вы ее так боитесь? Судя по описанию, обычный реестр объектов. Самое страшное что можно придумать - это плодить поля с ID для каждого типа объекта.
...
Рейтинг: 0 / 0
ссылки из одного поля в несколько таблиц
    #36794124
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm, вот конкретно в этом примере оно и не так страшно, просто хочу быть последовательным. если какой-то пользователь или сторонний софт начинает поставлять в базу некорректные данные и это выплывает не сразу, то работы становится больше, в том числе и мне
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ссылки из одного поля в несколько таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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