Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Кто как организует справочники?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Я понимаю, что этот вопрос скорее всего в раздел "Программирование БД". Но т.к. я здесь больше бываю, то хочется поинтересоваться здесь.
Кто как организует справочники в БД?
1. Подход.
Организовать две таблицы: первая - наименование справочников, пусть даже древовидная структура; вторая - элементы справочников, древовидная структура.

2. Подход.
Организовывать каждый справочник в отдельной таблице.

======================
У каждого подхода, на мой взгляд, есть плюсы и минусы. Может быть есть и другие подходы.
24 авг 09, 12:34    [7572459]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
Ох...ий программизд
Guest
Владимир СА,

по разному, зависит от конкретной задачи и, в большей степени, от общей архитектуры базы и программного комплекса в целом.
24 авг 09, 12:42    [7572501]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Ох...ий программизд,
Но у нас ситуация, когда заказчик толком и рассказать не может. Архитектура БД меняется после встречи с заказчиком.
Вот и ситуация. Пошел составлять справочники по 1-му подходу, т.к. справочников много, уже под 60 и еще прирост будет. Но многие справочники специфические. Имеют индивидуальный подход и плодить поля в таблице для описания конкретного справочника тоже на мой взгляд неправильно. Таблица сильно разряженная.
А если перейти на 2-ой подход, то очень много таблиц появляется.
24 авг 09, 13:09    [7572659]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
Владимир СА
А если перейти на 2-ой подход, то очень много таблиц появляется.

Ну и что?
60 таблиц - это много?
24 авг 09, 13:25    [7572755]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
pil0t
Member

Откуда:
Сообщений: 65
в первом варианте довольно много подводных камней
меньше возможности для контроля целостности, уникальнсоти и т.п. средствами БД

в чем проблема что будет много таблиц?

Запутаться в одной содержащей всё и вся - оч легко
24 авг 09, 13:25    [7572757]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
лучше делать для каждого справочника отделную таблицу...
24 авг 09, 13:35    [7572801]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
А кто запретил использовать оба подхода?
24 авг 09, 15:48    [7573737]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
Anddros
Member

Откуда:
Сообщений: 1077
Наиболее удобный подход, с которым встречался: основные реквизиты всех справочников - в одной таблице. Позволяет просто унифицировать львиную долю списков. Специфика конкретных справочников - в доп. таблицах, которые джойнятся при необходимости.
24 авг 09, 16:05    [7573819]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
Владимир СА,

ИМХО:
Если стравочники будут редактироваться(добавить/изменить/удалить) пользователями, то лучше 2-й подход с таблицами.
Если справочники будут только использоваться, импорт/экспорт то лучше 1-уй с 1-ой или 2-я таблицами. (сегодня 60, завтра 160, после завтра 20 и совершенно другие.)
Хотя как правильно сказали от ситуации зависит. И что в этих справочниках будет храниться.
24 авг 09, 16:34    [7573997]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
gds
Если справочники будут только использоваться, импорт/экспорт то лучше 1-уй с 1-ой или 2-я таблицами. (сегодня 60, завтра 160, после завтра 20 и совершенно другие.)

Опа!
А что вы называете справочниками?
24 авг 09, 16:37    [7574023]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
baracs,

Например КЛАДР, справочник типов документов, справочник состояний ,Контрагентов, Сотрудников... и др.
Разные класификации справочников есть.
24 авг 09, 16:47    [7574088]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
gds
baracs,

Например КЛАДР, справочник типов документов, справочник состояний ,Контрагентов, Сотрудников... и др.
Разные класификации справочников есть.

КЛАДР - не справочник, а классификатор. Чтобы сделать из него справочник(и), надо еще попотеть. Но это, к слову.

Мне непонятно, что это за справочники, которые сегодня есть в системе, а послезавтра - нет?
Повторюсь с цитированием:
gds
сегодня 60, завтра 160, после завтра 20 и совершенно другие.

А что происходит со строками других таблиц, которые ссылаются на эти справочники?

Или вы называете "справочником" любую инфу, которя хранится в системе?
24 авг 09, 17:04    [7574197]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
baracs
... что это за справочники, которые сегодня есть в системе, а послезавтра - нет?

Это я утрировал.
Ну а так например есть некая таблица А в с полем статус связаная по внешнему ключу с другой таблицей Б. Завтра захотелось мне убрать таблицу Б, в которой храняться статусы, а ссылку перекинуть на другую таблицу В, в которой, тоже может храниться значение статусов, но уже совершенно в другой структуре.
Зачастую бывает после миграции системы (программной). Например есть две программы:
1. покупная (старая). по каким либо причинам не подхотит уже под вашу компанию.
2. Самописная программиставми коании.
Таблица со статусом в 1-ой проге имела структуру, ID varchar(10), Name varchar(...)
в вашей все тоже самое, но ID int, Name varchar(...).
данных много, структура запутаная, переносить надо быстро. что делаем? создаем такую же таблицу (ID varchar(10), Name varchar(...)) и переносим все делая ссылки на эту таблицу. получается каша, особенно когда несколько модулей. Для того что бы персонал работал а не стоял.
...потом потехоньку приводим все в порядок. Но на каком то этапе получается что половина записей (из разных таблиц, например полученные через union all) имеют статус ИД = 1, а другие статус ИД = 01x2b

Может это все и не относится к данной ситуации, но при внедрении ПО и миграциях очень болезненная тема.
24 авг 09, 17:27    [7574324]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
lepton
Member

Откуда: Протвино
Сообщений: 1261
Первый подход, однозначно, в топку. Уж слишком он не универсальный.

Целостность данных, нормальные формы, использование индексов, внесение изменений,простое представление модели будет ой как затруднительно (можно и дальше перечислять)
24 авг 09, 17:39    [7574390]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
gds,

Да уж! Миграция - это действительно, отдельная тема!
Могу, только сказать, что в нашей компании переход на самописную систему идет не быстро: функционал передается по мере готовности модулей. И львиная доля усилий потрачена как раз на переход от разрозненных справочников филиалов к единым, централизованным. И дедлалось это до того, как начался собственно переход...

А речь-то, вроде шла о разработке новой системы...
24 авг 09, 18:11    [7574557]     Ответить | Цитировать Сообщить модератору
 Re: Кто как организует справочники?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Всем большое спасибо.
Топик можно закрыть.
25 авг 09, 06:44    [7575377]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить