Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Каким образом лучше создавать справочники? Справочник где будет уникальный код записи и наименование записи, но таких справочников будет с десяток, либо создать один справочник с составным кодом, где есть уникальный номер и тип кода справочника. Что лучше зарекомендовало себя на практике? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:10 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
karpiДобрый вечер! Каким образом лучше создавать справочники? Справочник где будет уникальный код записи и наименование записи, но таких справочников будет с десяток, либо создать один справочник с составным кодом, где есть уникальный номер и тип кода справочника. Что лучше зарекомендовало себя на практике? Спасибо! Для мелочевки типа единиц измерения, фамилий менеджеров, валюты можно сделать мультисправочник по второму варианту. Остальные справочники с множеством полей - в отдельные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:11 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
На каждый справочник - свою таблицу или набор таблиц. Программы имеют "привычку" развиваться. Если в результате такого развития понадобиться добавить поле, набор полей или связанную таблицу к справочнику, то в случае если справочник в отдельной таблице - никаких проблем. Если же этот справочник - часть записей более общей таблицы, то масса проблем обеспечена. По тем же соображениям не стоит делать одну "универсальную" форму для однотипных справочников. Максимум, можно сделать "универсальный" класс-формы. Но для каждого справочника надо сделать свой класс-наследник от этого универсального класса. Кроме того, десяток - это не так много, как кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:22 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Тогда для мультисправочника при добавлении новой записи надо предусмотреть добавление типа справочника, т.е. если уникальный код проходит автоинкремент, а для типа справочника пишется еще код программы. Это делается в коде программы или в триггере? Если рассматривать первый вариант, то тебя эти проблемы не волнуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:22 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
ВладимирМНа каждый справочник - свою таблицу или набор таблиц. Программы имеют "привычку" развиваться. Если в результате такого развития понадобиться добавить поле, набор полей или связанную таблицу к справочнику, то в случае если справочник в отдельной таблице - никаких проблем. Если же этот справочник - часть записей более общей таблицы, то масса проблем обеспечена. По тем же соображениям не стоит делать одну "универсальную" форму для однотипных справочников. Максимум, можно сделать "универсальный" класс-формы. Но для каждого справочника надо сделать свой класс-наследник от этого универсального класса. Кроме того, десяток - это не так много, как кажется. Не согласен. Как и куда может развиться справочник единиц измерения ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:25 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
дык сущность-то - ед. измерения - она одна! ;) Никуда - одна таблица справочная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:43 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Диченко Не согласен. Как и куда может развиться справочник единиц измерения ??? Допустим, нам захотелось иметь указание в какой системе указана эта единица: метрическая, англо-американская или какая-то еще. И как Вы будете выкручиваться если этот справочник входит в более общую таблицу? Отдельную таблицу - не предлагать! Это тот же отдельный справочник - вид сбоку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:46 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Еще вспомнил. Есть такая штука, называется "Общероссийский классификатор единиц измерения" (ОКЕИ). Тоже хотелось бы добавить А еще "расшифровку" названия. Это для "шт" понятно, что штуки. Но есть более мудреные сокращения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:50 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Еще вариант - универсальная схема из трех таблиц: 1) собственно справочник (универсальный): тип, id, название 2) справочник атрибутов: id, название, размерность 3) значения атрибутов: id из 1-й таблицы, id из 2-й таблицы, значение атрибута. Абсолютная гибкость, однако. Еще можно сделать 4-ю таблицу: возможные сочетания id 1-го и 2-го, для контроля ввода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 20:09 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
>Не согласен. Как и куда может развиться справочник единиц измерения ??? Из практики - возникла необходимость завести связь - типа одна тонна=1000 кг. Добавлять ради этого дополнительную таблицу облом;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 20:36 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
А вот напрасно влом. Еще поплачете потом, когда глубоко в систему эти пересчеты внедрять придется. Делайте таблицу пересчетов. Причем, для скорости, в обе стороны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 20:54 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Для единиц измерения я использую таблицу с соотношением родитель-ребенок (Parent-child). Есть понятие главная единица измерения и подчиненные. Больше одного уровня вложения не имеет смысла. В таблице есть поле, задающее коэффициент пересчета подчиненной к главной (для главной = 1). Вот и все. (Поле ОКЕИ тоже присутствует). С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2005, 10:02 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
И это правильно, до тех пор, пока возникает задача пересчета только из любой единицы к главной в своей группе. Но в общем случае задача сложнее. 1. Пересчет из главной в неглавную своей группы. В общем случае, либо программа знает, какая из единиц главная, а какая нет, либо не знает. Если знает, нестрашно: уже в коде определяем, будет деление или умножение. Если не знает, приходится ей об этом говорить. А это дополнительные обращения к данным. Более общая задача - пересчет из любой в любую внутри группы. Например, из центнеров в тонны (главная - килограмммы). Если задача реализована как "пересчеты только к главной", то придется искать 2 строки таблицы, а не одну. На один коэффициент умножаем, на другой делим. Все хорошо, но иногда время работы таких расчетов может стать критичным, тогда лучше завести таблицу с пересчетами любых единиц к любым. Это я утрирую, конечно, на практике с единицами измерения такого еще нигде не видел. И сам использовал схему как у Aleksey-K (только группы единиц измерения у меня все же в отдельной табличке, а не parent-child). А вот с валютными курсами было такое дело: приходилось реализовывать так, что пока нет именно из USD в EUR, хотя к основной единице - RUR - оба курса заведены, ничего не будет работать. И даже не потому, что производные пересчеты могут быть неточны, а потому что надо было считать много и быстро! Кстати, при вставке курса USD -> EUR я автоматически вставлял и вторую строку с обратным ему курсом EUR -> USD. Денормализация ради ускорения расчетов, так сказать). 2. Пересчет единиц между группами. Например, продаем шнурки. 1 пара шнурков = 90 см длины шнурков ;-))) Для реализации этой задачи придется организовывать таблицу пересчетов между группами с учетом, например, товарной позиции ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2005, 11:32 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Согласен с Urri по поводу скорости работы, но я забыл сказать, что таблица единиц измерений находится на MS SQL Server, по первичному ключу таблицы создан кластерный индекс, а по полю Koef (коэффициент пересчета) - не кластерный. В результате получается поиск по индексу, покрывающего запрос (covered index) - время поиска по такому индексу пренебрежительно мало, но вы правы, в большой запрос я бы не стал выключать функцию, осуществляющею перевод единиц измерения. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2005, 13:21 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Hi Glyba! То что ты предлагаешь по сути есть реляционная реализация объектной базы данных - она имеет несоменные плюсы - "невиданная гибкость во всём теле" (c) но и огромные минусы - начиная от катастрофического снижения производительности, и заканчивая "заумными" запросами для получения примитивных выборок... Хотя если работать через бизнес-объекты (а значит отказаться от SQL и от курсоров как хранилища информации), то будет вполне себе ничего решение - недостатки ООБД поглотятся недостатками (ну можно сказать особенностями идеологии) собственно слоя бизнес-объектов :) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2005, 21:59 |
|
||
|
О хранении информации в справочниках
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi Glyba! То что ты предлагаешь по сути есть реляционная реализация объектной базы данных - она имеет несоменные плюсы - "невиданная гибкость во всём теле" (c) но и огромные минусы - начиная от катастрофического снижения производительности, и заканчивая "заумными" запросами для получения примитивных выборок... Хотя если работать через бизнес-объекты (а значит отказаться от SQL и от курсоров как хранилища информации), то будет вполне себе ничего решение - недостатки ООБД поглотятся недостатками (ну можно сказать особенностями идеологии) собственно слоя бизнес-объектов :) Posted via ActualForum NNTP Server 1.1 Неужели снижение производительности прямо-таки катастрофическое будет? Дя и запросы не заумные, как представляется, всего-то одно объединение добавляется (я, правда, такую схему еще не реализовывал, только собираюсь, но идея нравится очень). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 10:42 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32891779&tid=1594951]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
119ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 470ms |

| 0 / 0 |
