powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для сущностей с одинаковыми атрибутами
5 сообщений из 5, страница 1 из 1
Структура БД для сущностей с одинаковыми атрибутами
    #37307346
ares4322
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
Задача: спроектировать структуру БД.
Исходные данные: есть набор сущностей, которые имеют некоторые общие атрибуты.
Пример: сущности предметной области - задания. общие атрибуты у них - название и тип. Но каждый тип заданий имеет свои дополнительные атрибуты. Например, у заданий по отправке писем - это адрес получателя, у задания на периодическую проверку - это время и период проверки и т.д.
Возможное решение: я думаю, что необходимо сделать таблицу типов сущностей и сделать по таблице для каждого типа сущности.
Вопросы:
1. Можно ли сделать так, чтобы работа с этими таблицами была для приложения, как работа с одной таблицей?
2. И правильно ли вообще так делать? Может есть смысл перенести логику выбора таблицы для запроса на приложение?
3. Или лучше сделать для всех типов сущностей одну таблицу?
...
Рейтинг: 0 / 0
Структура БД для сущностей с одинаковыми атрибутами
    #37307442
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучите примеры реализации EAV.
...
Рейтинг: 0 / 0
Структура БД для сущностей с одинаковыми атрибутами
    #37307586
ares4322
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наткнулся на http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back .
EAV использовать вряд ли буду. Самое простое - скинуть все сущности в одну ТБД
...
Рейтинг: 0 / 0
Структура БД для сущностей с одинаковыми атрибутами
    #37308074
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо таблица предок с одинаковыми полями плюс набор таблиц с дополнительными полями и тем же первичным ключом.
Для приложения это будет запрос вьюхи
Код: plaintext
1.
2.
3.
select  * from parent p
left join spec1 s1 on p.id=s1.id
left join spec2 s2 on p.id=s2.id
left join spec3 s3 on p.id=s3.id
Эта структура эффективна при поиске по общим полям
причем если приложение точно знает что ищет то можно еще сделать набор более специфических вьюх
Код: plaintext
1.
2.
3.
4.
5.
select * from parent p
join spec1 s1 on p.id=s1.id

select * from parent p
join spec2 s2 on p.id=s2.id


либо просто вьюха для независимых таблиц
Код: plaintext
1.
2.
3.
4.
select * from  spec1
union all 
select * from  spec2
union all 
select * from  spec3
это если таблицы скорее разные, чем похожие и нужен хоть какой нибудь общий интерфейс
...
Рейтинг: 0 / 0
Структура БД для сущностей с одинаковыми атрибутами
    #37308336
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ares4322,

а может представить что здание долно иметь обязательные аттрибуты. а по закладкам накапливаемые по-необходимости - адрес, технические данные и т.д. - тогда все представляется просто и понятно - есть здание - оно одновременно может иметь и почтовые аттрибуты (которые лежат в отдельной табличке) и техническое описание БТИ (тоже отдельная табличка) и т.д.

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


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