Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Справочники - вместе или отдельно / 25 сообщений из 66, страница 1 из 3
12.03.2004, 07:57
    #32439056
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Есть куча таблиц: единицы измерения, отделы, склады и все такое. Хотим создать таблицу - глобальный справочник, который включал бы в себя все это вместе. Структура древовидная. id, parent, name и т.д.
Имеет ли смысл? Что лучше отдельно держать или вместе?
...
Рейтинг: 0 / 0
12.03.2004, 09:34
    #32439158
GrayRat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Мое мнение - нет. Учавствовал я в проекте где такое делалось (причем даже не так как планируете сделать Вы: в отдельный глобалный справочник выделялось лишь описание второстепенных сущностей, количество которых в принципе никогда не должно было перевалить даже за сотню), в итоге, хотя как и планировалось количество осталось на уровне, клиенты захотели дополнительных описаний этих самых сущностей - думаю Вы сами можете представить себе на что в итоге стала похожа таблица, к которую беспрерывно добавлялись столбцы, причем каждый конкретный столбец использовался для описание 1-3 сущностей.
Если у Вас действительно существует необходимость вести глобальный каталог сущностей, то думаю стоит его выделить в отдельную таблицу со, в принципе, сходной с указанной Вами структурой (назвать ее например dobj<ects>). Соответвенно таблицы описания каждого конкретного вида сущностей имеет смысл "прошить" кодом объекта.
Построение дерева в этом случае будет заключаться в выборке данных из БД (видимо в виде [запрос1] UNION [запрос2] ...) и обработке полученных данных на стороне клиента
...
Рейтинг: 0 / 0
12.03.2004, 10:33
    #32439271
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
мое мнение - вместе.
пример серой крысы не показателен.

если планируется(и скорее всего так и будет) переменное количество характеристик каждого справочника, и переменное количество справочников, сделать подчиненную таблицу с характеристками.

и никакого гемора, три дня труда - 10 лет счастья. надо добавить справочник - пожалуйчта кнопка "добавить справочник" :-) надо добавить характеристику справочнику - пожалуйста! аналогичная кнопка :-)
...
Рейтинг: 0 / 0
12.03.2004, 10:35
    #32439278
Paul A. Kuptsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Предложу способ, который здесь уже описывался, вроде бы. Все справочники, однотипные, которые влезают в структуру id, parent, name - засовываешь в одну таблицу. Справочники, у которых есть доп. поля выносишь в отдельные таблицы.
Можно доп. поля организовать в структуре, похожую на эту: "Registry" в базе данных
...
Рейтинг: 0 / 0
12.03.2004, 10:36
    #32439284
Paul A. Kuptsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
К пред. сообщению: в статье "Registry" в базе данных предлагается посмотреть идею хранения разнотипных записей в одной таблице.
...
Рейтинг: 0 / 0
12.03.2004, 10:44
    #32439306
x
x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
А мне вот интересно как в процессе проектирования вы получили такую сущность как "Общий справочник" ?

А если не получили, то зачем пихать разные сущности в одну таблицу ?

(Это не наезд. Мне действительно интересно. Если можно приведите коротенький пример.)
...
Рейтинг: 0 / 0
12.03.2004, 11:09
    #32439375
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Klick

Прежде всего - нужно ответить на вопрос зачем вам это надо?

Потому что если хотите кнопку - типа "Добавить справочник" - вам совершенно необязательно хранить все в одной таблице - это вообще никак не связанные вещи.
...
Рейтинг: 0 / 0
12.03.2004, 11:56
    #32439540
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
База данных с переменным числом столбцов, может Вы XML базу данных делаете и не догадываетесь об этом?
...
Рейтинг: 0 / 0
12.03.2004, 12:00
    #32439561
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Green2
все может быть - вы только скажите - что это за зверь такой - xml БД
...
Рейтинг: 0 / 0
12.03.2004, 12:20
    #32439638
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Давным давно, раньше реляционных баз данных появились иерархические базы данных. Они делались без теории, по наитию разработчиков.

Потом появилась реляционая теория и подтвердила, что нет ничего практичнее хорошей теории.

Пошло время, и иерархические базы вернулись в виде XML.

Смотри тут
...
Рейтинг: 0 / 0
12.03.2004, 12:30
    #32439674
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
А мне вот интересно как в процессе проектирования вы получили такую сущность как "Общий справочник
т.е. такого не может быть??? я не силен в теории, потому скажу только, что получили и получили. :)
А почему сие есть плохо? Нам кажется, что может получится очень даже хорошо.
Есть ли у кого нить опыт такой?
На счет кнопочек там или всякой такой ерунды - не пишите не тратьте время. Нам не кнопочки нужны, а хорошо работающая легко изменяемая структура. Дело в том, что только сейчас удалось пробить идею внедрения клинт-серверной технологии и начинаем только практически с нуля. Хочется сразу сделать так чтоб потом не было геморра. (И не говорите "что как раз вот это и будет геморр" не смешно :) )
Заранее спасибо !
...
Рейтинг: 0 / 0
12.03.2004, 12:35
    #32439692
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Кстати все заварилось с этой статьи http://www.compress.ru/Article.asp?id=2006
...
Рейтинг: 0 / 0
12.03.2004, 12:37
    #32439697
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Вы сами можете представить себе на что в итоге стала похожа таблица, к которую беспрерывно добавлялись столбцы - никакие столбцы у нас никуда не будут добавляться! С чего бы это? Будет тбл объектов, связей между ними и атрибутов.
...
Рейтинг: 0 / 0
12.03.2004, 12:41
    #32439707
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
KlickБудет тбл объектов, связей между ними и атрибутов.
Ну совсем как XML!
...
Рейтинг: 0 / 0
12.03.2004, 13:16
    #32439809
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Klick

Кстати все заварилось с этой статьи http://www.compress.ru/Article.asp?id=2006

А! Старая песня ни о чем... Мой вам совет - зубудьте про нее - по крайней мере до тех пор пока не наберетесь опыта и теории проектирования БД. Мое мнение на ее счет - много шума из ничего - т.е. то что там описывается е тянет на серебряную пулю никак!

Вы лучше сами для себя ответьте на мой вопрос - зачем вам это надо? Это просто непростительная наивность - выбирать путь просто на основе какой-то статьи - даже не понимаю зачем он нужен...

Green2
Дорогой грин, ну бросьте вы это лепет про xml - это формат хранения и ничего более
...
Рейтинг: 0 / 0
12.03.2004, 13:23
    #32439830
Klick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Вы лучше сами для себя ответьте на мой вопрос - зачем вам это надо? Это просто непростительная наивность - выбирать путь просто на основе какой-то статьи - даже не понимаю зачем он нужен...

Нам это надо потому что хочется универсальности. Если делать как обычно то получится куча таблиц и с каждой придется возиться персонально, а так единый механизм.
На счет наивности - эт зря... Статья это не главное. Мы к этому уже давно шли. Вот теперь решили посоветоваться с "опытными товарищами".
Неужели никто на самом деле реально такого не разрабатывал?
...
Рейтинг: 0 / 0
12.03.2004, 13:31
    #32439860
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Нам это надо потому что хочется универсальности. \r
\r
Универсальности? А цену такой модели знаете? Или в статье об этом нет? :)\r
\r
Почитайте это /topic/5961&pg=1\r
\r
Неужели никто на самом деле реально такого не разрабатывал?\r
А что там такого сложного - чтобы его "разрабатывать"? Для такого подхода есть своя ниша
...
Рейтинг: 0 / 0
12.03.2004, 13:39
    #32439891
zayac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Я тут /topic/78322\r
недавно пытался выяснить, есть ли у кого-то опыт по внедрению некой гибридной системы. Справочники хранятся не вместе, но и не раздельно. Структура вроде расчитана на\r
>никакие столбцы у нас никуда не будут добавляться! С чего бы это? Будет тбл объектов, связей >между ними и атрибутов\r
и хочу сделать ударение на то, что в моей ситуации:\r
>Записей в них от двух до тысячи, структура различная. В будущем будут появляться новые dbf и >модифицироваться существующие.
...
Рейтинг: 0 / 0
12.03.2004, 13:44
    #32439908
bas
bas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
>>Klick

Реально, все сведется к спору, кто круче, и никто вам дельного совета не даст, так как это уже идеология - кидать все в одну иерархическую таблицу или дробить на 1000 мелких. У тех и у других были как положительные примеры реализации, так и отрицательные. У меня вообще был МП, который даже для адресов не делал иерарх. табл., а дробил на 3-5 маленьких и все работало.... Так что решать вам и если вам больше подходит иерарх. табл., то в путь, а если сомневаетесь, то задавайте более конкретные вопросы.
...
Рейтинг: 0 / 0
12.03.2004, 13:55
    #32439942
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Однозначно только то, что "справочники-отдельно" будут работать быстрее. А работа с ними будет программироваться не дольше (если сами не наплодите в каждом из них всяких отклонений от типовой схемы построения справочника ;-)).
...
Рейтинг: 0 / 0
12.03.2004, 14:00
    #32439959
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
С другой стороны, для того, чтобы добавить "забытый" в свое время справочник, нужно будет программировать (соответственно, нужен будет разработчик), тогда как при наличии вшитой в систему идеологии работы со "справочниками-все-в-одном", достаточно будет только настроек (соответственно, нужен будет администратор системы). Вам, как разработчику, выгоднее нагрузить администратора, не так ли? ;-)
...
Рейтинг: 0 / 0
12.03.2004, 14:17
    #32439997
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
bas
Вы невинмательно читаете топик - речь идет не об иерархических таблицах...

Urri
Вам, как разработчику, выгоднее нагрузить администратора, не так ли? ;-)

Да тоже самое можно сделать и для другой модели проектирования - я уже говорил - кнопку "добавить справочник" можно сделать и там и тут :)
...
Рейтинг: 0 / 0
12.03.2004, 14:33
    #32440037
Вовик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
Мне кажется , идея с наличием универсальной таблицы имеет следующие
преимущества :
-она дает механизм организации единого ключа для сущностей разных типов
-кроме того, в ней можно хранить и строку - упрощенное название
( представление ) сущности.

Все это может оказаться полезным в случае разработки систем типа
бухгалтерских , когда заранее нельзя определить , какая аналитика
потребуется на том или ином счете. При использовании же данного подхода
select всегда будет один и тот же , будет лишь меняться его часть ,
связанная с where.
...
Рейтинг: 0 / 0
12.03.2004, 14:48
    #32440087
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
GrayRat Правильно заметил, на что похожа таблица, в которой постоянно меняются поля.

Как раз я у себя соорудил нечто подобное (на прошлой неделе), это измерение OLAP, номенклатуры различных товаров. Но в самой таблице я храню лишь краткое описание и код в справочной таблицы. Я еще не использовал это толком в работе.

Но все измерения забрасывать в одну таблицу это бред.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
CREATE TABLE [dbo].[S_NOM27] (  -- Справочник промышленной продукции
 
	[RAZDNOM] [float] NULL ,
	[KNOM] [float] NULL ,
	[KBALK] [float] NULL ,
	[KNOMR] [float] NULL ,
	[KEIZ] [float] NULL ,
	[KZNZPT] [float] NULL ,
	[DRSX] [nvarchar] ( 6 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[PRRAZR1] [float] NULL ,
	[MP] [float] NULL ,
	[PRRAZR3] [float] NULL ,
	[GS] [float] NULL ,
	[KPERIOD] [float] NULL ,
	[KWIGR] [float] NULL ,
	[PERKWOT] [float] NULL ,
	[KWXOD] [float] NULL ,
	[NNOM] [nvarchar] ( 250 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[ZAKRIZD] [float] NULL ,
	[DOKLSX4] [float] NULL ,
	[OPGOD] [float] NULL ,
	[OPGODST] [float] NULL ,
	[P_1GOD] [float] NULL ,
	[DATEA] [smalldatetime] NULL ,
	[STATUS] [float] NULL ,
	[PRPR] [float] NULL ,
	[PROT] [float] NULL ,
	[PRRT] [float] NULL ,
	[RNKS] [float] NULL ,
	[PRRAZR2] [float] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[nomenklatura2] (  -- суперсправочник
 
	[nomenklatura2] [bigint] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[name] [varchar] ( 250 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[dictionary] [bigint] NOT NULL ,  -- код справочника из s_dictionary
 
	[cod] [bigint] NOT NULL            -- уникальный код в справочнике
 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[s_dictionary] (  -- в этой таблице перечислены все справочники
 
	[dictionary] [bigint] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[NameDictionary] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[DescDict] [text] COLLATE Cyrillic_General_CI_AS NULL ,
	[nomenklature] [bit] NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[s_msh] (  -- справочник мощьностей
 
	[NOMPR] [float] NULL ,
	[KOTR] [float] NULL ,
	[KMSH] [bigint] NOT NULL ,
	[X5] [float] NULL ,
	[X6] [float] NULL ,
	[FL1] [float] NULL ,
	[FL2] [float] NULL ,
	[FL18] [float] NULL ,
	[PRAPK] [float] NULL ,
	[NPOZ] [float] NULL ,
	[ZAKR] [nvarchar] ( 30 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[KVX] [nvarchar] ( 30 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[EI] [nvarchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[NMSH] [nvarchar] ( 255 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[NPOLN] [nvarchar] ( 255 ) COLLATE Cyrillic_General_CI_AS NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[s_okp] (  -- Отраслевой каталог продукции
 
	[okp] [bigint] NOT NULL ,
	[kd1] [int] NULL ,
	[kd2] [int] NULL ,
	[kch] [int] NULL ,
	[descript] [varchar] ( 255 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[levelTree] [int] NULL ,
	[parent] [bigint] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[s_okpopt] (  -- Алкогольная продукция
 
	[okpopt] [bigint] NOT NULL ,
	[name] [nvarchar] ( 255 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[ord] [tinyint] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[s_room] (  -- кваритры
 
	[room] [bigint] NOT NULL ,
	[NameRoom] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[ord] [int] NULL ,
	[three] [text] COLLATE Cyrillic_General_CI_AS NULL ,
	[tree2] [text] COLLATE Cyrillic_General_CI_AS NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
...
Рейтинг: 0 / 0
12.03.2004, 14:49
    #32440089
bas
bas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справочники - вместе или отдельно
funikovyuri
Вы невинмательно читаете топик - речь идет не об иерархических таблицах...


Сначала как раз про них и шла речь, потом разбили ее на несколько, но смысл не изменился... Не надо придираться к словам.

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


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