powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Борьба с полиморф ссылками
6 сообщений из 6, страница 1 из 1
Борьба с полиморф ссылками
    #34061973
Алексей Кр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто подскажет, как бороться с полиморф ссылками? Ситуация следующая исходная таблица, кв которой на полиморф указывают две ячейки, первая на таблицу, из которой брать записи, вторая ячейка - номер записи из соответствующей таблицы. Подскажите пожалуйста, как быть? Как побороть такие полиморф ссылки, как лучше перепроектировать несколько таблиц? Заранее благодарен!
...
Рейтинг: 0 / 0
Борьба с полиморф ссылками
    #34062097
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бороться - перепроектированием :)
Сложно универсально ответить на подобный вопрос, не зная задачи. Это все равно как спросить "Как бороться с операторами GOTO в программах?"
Например, можно все множество таблиц, на которые идут такие ссылки,
обьединить в одну со сквозным ключом, а специфичные для каждой поля хранить отдельно, в таблице вида (тип сущности, id сущности, название поля, значение поля).
Но это так, заплатка - скорее всего, изначальный дизайн сделан плохо, надо пересматривать его.
...
Рейтинг: 0 / 0
Борьба с полиморф ссылками
    #34062321
Серж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или как говорит Матроскин или в таблице (в которой хранится связка "номер таблицы+ номер записи") сделать нескольо ссылок на все возможные таблицы. Получится список возможных внешних ключей, но в этом списке все поля кроме одного будут нуловскими. Таким образом можно будет возложить контроль целостности данных на сервер.

Но это тоже заплатка. Ваша задача до конца не формализована. Нужно или "добивать" ее до конца (что не всегда реально и нужно), либо бороться вот такими заплатками. Мне больше нравится вариант со списком внешних ключей -- меньше шансов "потерять" связи, которые потом ручками придется восстанавливать.
...
Рейтинг: 0 / 0
Борьба с полиморф ссылками
    #34063093
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это сделано не со зла:), то никак. Очевидно дизайн приложения исходит из того, что набор таблиц может неограниченно расширяться в силу каких-то неподконтрольных нам причин.
...
Рейтинг: 0 / 0
Борьба с полиморф ссылками
    #34089070
Фотография CrazyPotato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинНапример, можно все множество таблиц, на которые идут такие ссылки,
обьединить в одну со сквозным ключом, а специфичные для каждой поля хранить отдельно, в таблице вида (тип сущности, id сущности, название поля, значение поля).
В вашей таблице тип поля значение поля какой будет? Нужен универсальный какой-то тип, чтобы и VarChar2 хранил, и DateTime, и Number; такого типа по-моему, не бывает.

Сержсделать нескольо ссылок на все возможные таблицы
Проблема в том, что набор этих всевозможных таблиц, которые представляют одну сущность, может изменяться.
А применять каждый раз на рабочей базе операторы ЯОД считаю признаком криво спроектированной БД.

ModelRЕсли это сделано не со зла:), то никак. Очевидно дизайн приложения исходит из того, что набор таблиц может неограниченно расширяться в силу каких-то неподконтрольных нам причин.
Неужели действительно никак? Теория реляционных баз данных тут сдаётся?
...
Рейтинг: 0 / 0
Борьба с полиморф ссылками
    #34089303
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CrazyPotato
В вашей таблице тип поля значение поля какой будет?

Если нужны суммирования, индексирования и т.д. - можно сделать несколько полей "значение" разных типов, или несколько таблиц аналогичной структуры с полями разнх типов, если не нужны - можно все скидывать в varchar.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Борьба с полиморф ссылками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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