|
|
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Всем привет. Кто встречался, плиз, поделитесь опытом. Проблема: Заказчик хочет, чтобы было различное число справочников, в каждом какие-то поля. Пользователь хочет иметь возможность создавать/редактировать/удалять справочники и поля в них в рантайме. Разумеется, справочники дальше используются в работе и на них появляются ссылки из других таблиц. В справочнике также могут быть поля-ссылки на другие справочники. Версионность тоже поддерживать надо (но вопрос не о версиях). Так как это всего лишь справочники, то не обязательно, чтобы эта часть системы очень быстро работала. Есть два варианта решения: 1. Использовать SQL DDL для создания/изменения таблиц в рантайме. Создавать таблицы, триггеры, ключи, таблицы с историей и т.д. 2. Создать общую структуру для всех справочников - таблица Справочники, таблица Поля, таблица Значения. Запись в таблице Поля ссылается на Справочник, которому это поле принадлежит, запись в таблице Значения ссылается на Поле, которому принадлежит значение, и на Тип данных, возможно. Если кто-то использовал это в реальном приложении, поделитесь плиз опытом по поводу производительности, простоты написания и поддержки, простоты использования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 17:23 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh....Если кто-то использовал это в реальном приложении, поделитесь плиз опытом по поводу производительности, простоты написания и поддержки, простоты использования. делали похожую весчь... смысл следующий (в двух словах без конкретики)... практически в одну таблицу упаковываются знания о связях и полях. связи задают "маршрут" выборки. поля - типы, правила сортировки, спец поля (вычисляемые) и т.п.. на оракле летало без проблем (что лично на меня произвело впечатление - когда без индексов идёт выборка кадра данных с кучей условиями, под несколько кб сам запрос, массивы данных уровня боинга и айбиэм - и всё енто за считанные копейки - респект). честно говоря это не моё решение (имееться ввиду логика), но очень элегантное... с точки зрения обращений - мона выделить два этапа. Вытаскивание связей и составление сиквол запроса. Ну и вторая фаза - уже подключалась логика накачки сетевого кадра - тут уже сами данные подтягивались, но это уже другая песня. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 17:33 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
2 kolobok0: Спасибо, значит работет быстро... kolobok0 делали похожую весчь... смысл следующий (в двух словах без конкретики)... А вот можно с конкретикой :) - сколько времени примерно писалось это счастье, как именно формируется запрос, как поддерживаются внешние ссылки на такой справочник, какая именно структура (если это не коммерческая тайна :)) Ведь это существенно усложняет все запросы с использованием справочников. 2 All: А кто-нибудь создавал/изменял таблицы в рантайме? Поделитесь, плиз. Как насчет совместимости версий SQL у разных RDBMS? Может, придется реализовывать разные запросы для разных СУБД? Нерадостно это звучит... Оба подхода имеют свои преимущества и недостатки, и я даже не знаю, что хуже :(. Каково ваше мнение по этому поводу? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:05 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohОба подхода имеют свои преимущества и недостатки, и я даже не знаю, что хуже :(. Каково ваше мнение по этому поводу? Используйте ООСУБД. http://www.membrana.ru/articles/readers/2005/09/02/200800.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:08 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
shuklin wrote: > vinniPooh > Оба подхода имеют свои преимущества и недостатки, и я даже не знаю, что > хуже :(. Каково ваше мнение по этому поводу? > > > Используйте ООСУБД. > http://www.membrana.ru/articles/readers/2005/09/02/200800.html жив, курилка.... была статья Т.Тенцера "База данных - хранилище объектов", искать в КомпьютерПресс 8,2001 -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:31 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
2 shuklin Спасибо за свежую мыслю, однако по понятным причинам ООСУБД меня не устраивает. Хотя кто знает... :) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:36 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh2 kolobok0: - сколько времени примерно писалось это счастье, как именно формируется запрос, как поддерживаются внешние ссылки на такой справочник, какая именно структура (если это не коммерческая тайна :)) Ведь это существенно усложняет все запросы с использованием справочников........ сразу оговорюсь... преследовался механизм НЕ в лёт добавлять таблицы и поля. А НЕ переделывать "поисковик" при каких-либо переделках структуры БД. а это немного рядом, я бы сказал... коммерческая - думаю уже протухла... но на форуме выкладывать не буду...стучитесь в мыло... если найду спеку, завтра вышлю... правда постараюсь оставить только суть в русле вашего вопроса...да, она на ангельском... думаю с этим проблем не будет... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:38 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
2 locky А что ты сам думаешь про весь этот геморрой? Может, и вправду изнасиловать заказчика и перейти на ООСБД? Мне важны мнения людей, которые столкнулись с этим на практике. Как-то я на заре своей программистской юности пытался реализовать наследование в РСУБД, но от этой идеи быстренько отказался - уже очень все было сложно, и время не позволяло. Хороший плюс в пользу ОО. Хотя серебряной пули нет и там ;) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:50 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohСпасибо за свежую мыслю, однако по понятным причинам ООСУБД меня не устраивает. Хотя кто знает... :) В таком случае можно посмотреть EAV и LOCNET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 19:11 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
2 shuklin: thanks. Примерно такое (EAV/CR) я и хочу сделать, только хочу использовать не по одной таблице для каждого типа, а хранить в одной таблице все типы (в нескольких полях), тем более что у меня только 3 типа, пока. Судя по всему, этот вариант предпочтительнее, чем SQL DDL. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 19:23 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohПримерно такое (EAV/CR) я и хочу сделать, только хочу использовать не по одной таблице для каждого типа, а хранить в одной таблице все типы (в нескольких полях), тем более что у меня только 3 типа, пока. тогда LOCNET - там внутри пример рабочего проекта для Access можно брать и пользоваться. Вся БД занимает 5 таблиц. Позволяет реализовать практически все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 20:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh wrote: > 2 locky > > А что ты сам думаешь про весь этот геморрой? Может, и вправду > изнасиловать заказчика и перейти на ООСБД? > Мне важны мнения людей, которые столкнулись с этим на практике. > А чо мне думать? я с таким работаю. Ничо, работать можно. Есть свои минусы, но куча плюсов. Правда, у меня реализация другая, но принципы те же. А ООБД - это к чукотским сказочникам. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 20:30 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Можно XML использовать, и хранить его в базе, к примеру 9-й оракл это прекрасно умеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 22:56 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Поделюсь своим опытом по этому вопросу. В своё время *в 200-ом году) наши заказчики возжелали иметь у себя так называемую систему ведения справочников, т.е. отдельное приложение, которое в отдельной базе ведёт все справочники, которые используются в нескольких десятках учреждений. Мы пошли по пути, который автор обозначил как SQL DDL. Вот что из этого получилось (в общих чертах): Структура справочников: 1. Термин справочник определён как набор объектов (таблиц, триггеров и т.д.), описывающих нечто из предметной области. 2. Внутри справочника выделили несколько типов таблиц: - линейная таблица справочника - основная таблица справочника - таблицы дополнительных свойств - таблицы оглавлений, задающие иерархию для линейной таблицы - ещё пара типов таблиц... 3. Для линейных таблиц справочников утвердили набор стандартных полей (код, наименование, период действия записи, дата создания записи). Всего таких служебных полей получилось 9 штук. Эти поля есть в каждой линейной таблице, их нельзя удалить и их порядок фиксирован. 4. Кроме служебных полей есть дополнительные поля (начиная с 10-го), которые можно добавлять/удалять по мере необходимости. 5. Среди дополнительных полей могут встречаться поля-ссылки, т.е. поля ссылающиеся на другие справочники. Порядок работы самой программы: 1. Для хранения описательной информации сформирован набор из примерно 10 служебных таблиц (репозитарий), в которых хранятся данные о полных наименованиях объектов, списки полей (с дополнительными свойствами) и ещё много чего, что понадобилось для нормальной работы. 2. Рядовым действием системы является создания нового объекта (справочника, оглавления, поля, ...), а это значит, что выполняются соотвествующие DDL-команды (CREATE TABLE, ALTER TABLE, CREATE TRIGGER, ...). Соотвественно для таблиц есть интерфейс добавления/удаления полей/индексов/связей. 3. Для просмотра справочников испольется многооконный интерфейс и обычные гриды. Для редактирования записей приходится для каждой таблицы строить свою форму в виде a'la property editor в Delphi/C#/... вот такая основная идея - будут вопросы, отвечу с уважением, Дмитрий Жучков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 07:26 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Эххх! Когда-то (88г?) я все это делал на Clipper. (Создание, объединение (join, union), ведение, фильтрация, индексация, выборка с подсуммировкой, автокалк поля (со ссылками на другие таблицы), триггеры для ведения связанных таблиц, генертор отчетов (на базе индексов),..) - называлась "генератор задач". Линейные задачи типа касса, банк и т.д получались за час. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 11:08 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Элементарно, Ватсон ! таб1: имя справочника ид объекта таб2: ид (из таб1) имя поля значения поля (varchar2(32000)) дата изменений еще надо добавить иерархич классификацию всего этого хоз-ва на оракле летает, запросы тривиальные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 11:53 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
2 Dimkas Спасибо за описание Не мог бы ты распространиться о скорости написания, работы и усилиях, необходимых для поддержки всего этого? Что было особенно неприятно делать, какие подводные камни, что при таком подходе радовало? Насколько я понимаю, при создании нового справочника модифицируются (добавление внешних ключей) также и те таблицы, которые ссылаются на этот справочник - для поддержания целостности? На какой базе это работало? Так как у меня конкретная СУБД не определена, то боюсь, что могут возникнуть проблемы с мигрированием. 2 ecv Благодарю тебя, о божественный гуру Просвети меня, сокровищница знаний, по поводу достоинств и недостатков метода, и как поддерживается ссылочная целостность и версионность при этом подходе? P.S. Рекомендую прочитать топик. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 12:20 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Единая структура справочников это когда хорошо, а когда и не очень. Я сделал единый механизм построения простых форм. http://www.sql.ru/forum/actualthread.aspx?tid=202235 http://www.sql.ru/forum/actualthread.aspx?tid=209398 Таблицы создаются программистом на сервере. Затем пишуться запросы и описания-метаданные к ним. Справочник может быть сколь угодно сложным: с лукап-полями, шапка/строки, дерево, БЛОБы, сложные фильтры, автосуммы, drilldown. Все конфигурируется без единой строчки кода в приложении. Там же определена безопасность: кому мона а кому немона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 14:39 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Единая структура справочников это когда хорошо, а когда и не очень. Иногда могут понадобиться исключения. Я сделал единый механизм построения простых форм. http://www.sql.ru/forum/actualthread.aspx?tid=202235 http://www.sql.ru/forum/actualthread.aspx?tid=209398 Таблицы создаются программистом на сервере. Затем пишуться запросы и описания-метаданные к ним. Справочник может быть сколь угодно сложным: с лукап-полями, шапка/строки, дерево, БЛОБы, сложные фильтры, автосуммы, drilldown, цветовыделение, печать/экспорт. Все конфигурируется без единой строчки кода в приложении. Там же определена безопасность: кому мона а кому немона. ИМХО, идеально для создания произвольных справочников и не только их. Можно при желании ввести версионность. Всё примерно 3-4тыс. строк кода. Delphi+MSSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 14:48 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh2 Dimkas Не мог бы ты распространиться о скорости написания, работы и усилиях, необходимых для поддержки всего этого? скорость написания - первая версия была написана за полгода в одиночку, но с первого раза ни работоспособность, ни функциональность заказчика не устроили и пришлось ещё месяца 3 дописывать/переписывать. А для достижения текущего результата понадобилось примерно 5 человеко лет ;) т.к. сейчас и СУБД другая, и функций сильно больше... vinniPooh Что было особенно неприятно делать, какие подводные камни, что при таком подходе радовало? Особо неприятно то что структура таблиц меняется на ходу, когда раньше жили на MS SQL Server'е, то DDL-операции можно было включить в транзакцию и в случае чего откатить, сейчас живём на Oracle и приходится думать как сделать аккуратнее ибо откатить DLL уже нельзя... Подводных камней особых не вспомню, хотя конечно были трудности... Что порадовало - тоже особенно ничего не припомню :) работа как работа... vinniPooh Насколько я понимаю, при создании нового справочника модифицируются (добавление внешних ключей) также и те таблицы, которые ссылаются на этот справочник - для поддержания целостности? При создании нового справочника на него ещё никто не ссылается, ведь его только что не существовало :). Вопрос надо уточнить... vinniPooh На какой базе это работало? Сначала работало на MS SQL 97, потом MS SQL 2000, потом переехали на Oracle 8.1.7 и FireBird 1.5, сейчас качуем в сторону Oracle 10.2 и FireBird 2.0 vinniPooh Так как у меня конкретная СУБД не определена, то боюсь, что могут возникнуть проблемы с мигрированием. не понял, какие проблемы? мигрированием чего и куда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 15:25 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
2 LSV Это все конечно круто, но я пишу на java, а потом, как-то все это громоздко выглядит. И речь идет о том, чтобы не писать запросы для каждого справочника в явном виде, а спрятать это от программиста. Если я правильно тебя понял. Расскажи плиз по-подробнее, я вообще не работал с Delphi и скорее всего, чего-то недопонял Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 15:38 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Dimkas vinniPooh Насколько я понимаю, при создании нового справочника модифицируются (добавление внешних ключей) также и те таблицы, которые ссылаются на этот справочник - для поддержания целостности? При создании нового справочника на него ещё никто не ссылается, ведь его только что не существовало :). Вопрос надо уточнить... После того, как справочник создан, на него могут ссылаться другие таблицы. Прописывали ли вы явно в других таблицах внешние ключи на этот справочник? Или целостность поддерживалась каким-то другим образом? Dimkas vinniPooh Так как у меня конкретная СУБД не определена, то боюсь, что могут возникнуть проблемы с мигрированием. не понял, какие проблемы? мигрированием чего и куда? Посколько синтаксис SQL DDL может, к сожалению, быть различным для разных СУБД, а у меня целевая СУБД не определена или может меняться (пути кастомера неисповедимы), теоретически могут возникнуть проблемы с переходом с одной базы на другую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 15:52 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh После того, как справочник создан, на него могут ссылаться другие таблицы. Прописывали ли вы явно в других таблицах внешние ключи на этот справочник? Или целостность поддерживалась каким-то другим образом? Да, внешние ключи прописываются при добавлении в справочник поля, ссылающегося на другой справочник. Периодически администратор системы выполняет так называемую проверку целостности - проверяются все первичные и внешние ключи, наличие и правильность триггеров и т.д. vinniPooh Посколько синтаксис SQL DDL может, к сожалению, быть различным для разных СУБД, а у меня целевая СУБД не определена или может меняться (пути кастомера неисповедимы), теоретически могут возникнуть проблемы с переходом с одной базы на другую. теперь понял :) у нас система работает на двух разных базах (Oracle и FireBird). естественно, что для них запросы строятся разные. для этого введён промежуточный программный слой, которому приложение сообщает что надо сделать, а он уже делает... вобщем то всё как обычно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:08 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh Просвети меня, сокровищница знаний, по поводу достоинств и недостатков метода, и как поддерживается ссылочная целостность и версионность при этом подходе? P.S. Рекомендую прочитать топик. достоинства известны недостаток - не покатит большой объем > 100000 объектов в одном спр триггера или прикладнуха - за все надо платить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:22 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Dimkas Да, внешние ключи прописываются при добавлении в справочник поля, ссылающегося на другой справочник. Периодически администратор системы выполняет так называемую проверку целостности - проверяются все первичные и внешние ключи, наличие и правильность триггеров и т.д. А когда на вновь созданный справочник должна ссылаться таблица с данными, она как-то модифицируется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:40 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
ecv wrote: > достоинства известны > недостаток - не покатит большой объем > 100000 объектов в одном спр > триггера или прикладнуха - за все надо платить даа? У меня max > 500000 - нормально усё... правда, пришлось работать напильником, это да. пока руку набил.... -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:46 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
И речь идет о том, чтобы не писать запросы для каждого справочника в явном виде, а спрятать это от программиста. Если я правильно тебя понял.А кто будет конфигурировать справочники ? Юзеры ? Конфигурацией системы должны заниматься специалисты. Иначе - бардак. У меня SQL-запрос писать нужно. Это единственное, что есть от программирования и это по силам даже начинающему программисту-студенту. И это пожалуй единственный спопоб сделать и просто и эффективно. Сделать мощный визард и исключить SQL в явном виде во первых сложно, и во вторых снизит эффективность работы с данными. Будет очередная 1С Речь идёт не только о справочниках. Указанная технология УНИВЕРСАЛЬНА и позволяет отображать любую списочную и древоподобную информацию в т.ч. и с посторонних таблиц (соседних баз). Справочник с единой структурой и интерфейсом менее универсален, хотя и является неплохим решением. Кстати, у меня он тоже есть, хотя упрощённый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 18:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
LSV И речь идет о том, чтобы не писать запросы для каждого справочника в явном виде, а спрятать это от программиста. Если я правильно тебя понял.А кто будет конфигурировать справочники ? Юзеры ? Конфигурацией системы должны заниматься специалисты. Иначе - бардак. У меня SQL-запрос писать нужно. Это единственное, что есть от программирования и это по силам даже начинающему программисту-студенту. И это пожалуй единственный спопоб сделать и просто и эффективно. Сделать мощный визард и исключить SQL в явном виде во первых сложно, и во вторых снизит эффективность работы с данными. Будет очередная 1С Речь идёт не только о справочниках. Указанная технология УНИВЕРСАЛЬНА и позволяет отображать любую списочную и древоподобную информацию в т.ч. и с посторонних таблиц (соседних баз). Справочник с единой структурой и интерфейсом менее универсален, хотя и является неплохим решением. Кстати, у меня он тоже есть, хотя упрощённый Именно юзеры (по требованиям :) ). Юзеры особо выдресированные, которые имеют звание админа, скорее всего. Они могут создать/удалить справочник, добавить/удалить/изменить поле, не говоря уже о самих значениях. Система у меня такая. Конечно, будут какие-то предопределенные справочники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 18:46 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohА когда на вновь созданный справочник должна ссылаться таблица с данными, она как-то модифицируется? во-первых для этого в таблице с данными должно быть соотвествующее поле. если оно есть, то на него накладывается внешний ключ на справочник, если его нет, то оно добавляется и см. п.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 06:53 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Для эффективной работы всё равно нужно знать и базовый SQL и РСУБД. Всё равно система оперирует запросами, а не какими-то модными объектными подходами. Если юзеры офигенно продвинутые, то что им мешает освоить базовый SQL ? Визард для создания таблиц/процедур/предстаалений можно заваять. Вот только зачем ? Всё уже изобретено. Аналогично и с конструкторами запросов. Навигационный подход к данным, как практикуется в dBase/1C/Navision и т.п. считаю безнадёжно устаревшим, хотя он обеспечивает независимость от СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 10:25 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
LSVДля эффективной работы всё равно нужно знать и базовый SQL и РСУБД. Всё равно система оперирует запросами, а не какими-то модными объектными подходами. Если юзеры офигенно продвинутые, то что им мешает освоить базовый SQL ? Визард для создания таблиц/процедур/предстаалений можно заваять. Вот только зачем ? Всё уже изобретено. Аналогично и с конструкторами запросов. Навигационный подход к данным, как практикуется в dBase/1C/Navision и т.п. считаю безнадёжно устаревшим, хотя он обеспечивает независимость от СУБД. Так-то оно так, но у меня в спецификации явно прописано: пользователи могут создавать справочники. Тут уж ничего не попишешь. Вот я и думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 11:42 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
>> но у меня в спецификации явно прописано: пользователи могут создавать справочники Если справочники простые, то для этого можно придумать древоподобную таблицу, где узлы это новые справочники. Корнем справочника есть некий узел дерева (можно где-то его объявить). Справочник может быть либо плоским либо древовидным. Хотя с произвольным набором полей будет посложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 12:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh Есть два варианта решения: 1. Использовать SQL DDL для создания/изменения таблиц в рантайме. Создавать таблицы, триггеры, ключи, таблицы с историей и т.д. Использовался этот подход. Правда пользователи не имеют доступ к изменению справочников, это делали программисты и администраторв готовых систем. Вкратце, добавлялся новый тип справочника (документа) в репозиторий, описывались параметры (поля) справочника (тип, наименование, значения по умолчанию и пр). Описывались связи между полями. Потом нажималась кнопка, которая создавала таблицы, поля, компилила автоматом процедуры по внесению, изменению, просмотру справочника. Триггера и связи БД не использовались. Вся логика зашивалась в процедуры. При компиляции определялась целевая БД и синтаксис процедур генерился в зависимости от синтаксиса SQL диалекта. Оказалась достаточно удобная схема позволяющая разрабатывать и внедрять продукты достаточно быстро. Но в отличии от подхода с одной универсальной таблицей проще синтаксис для отчетов и выше производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 14:02 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Estets vinniPooh Есть два варианта решения: 1. Использовать SQL DDL для создания/изменения таблиц в рантайме. Создавать таблицы, триггеры, ключи, таблицы с историей и т.д. Использовался этот подход. Правда пользователи не имеют доступ к изменению справочников, это делали программисты и администраторв готовых систем. Вкратце, добавлялся новый тип справочника (документа) в репозиторий, описывались параметры (поля) справочника (тип, наименование, значения по умолчанию и пр). Описывались связи между полями. Потом нажималась кнопка, которая создавала таблицы, поля, компилила автоматом процедуры по внесению, изменению, просмотру справочника. Триггера и связи БД не использовались. Вся логика зашивалась в процедуры. При компиляции определялась целевая БД и синтаксис процедур генерился в зависимости от синтаксиса SQL диалекта. Оказалась достаточно удобная схема позволяющая разрабатывать и внедрять продукты достаточно быстро. Но в отличии от подхода с одной универсальной таблицей проще синтаксис для отчетов и выше производительность. Очень интересно. А сколько времени разрабатывалась система? Могла ли структура таблицы изменятся после создаиня в рантайме? Были ли проблемы с откатом изменений таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 14:29 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Проблем с откатом не может не быть. При откате меняется часть логики и она может не соответствовать общей инф. модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 17:06 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Оправдала себя на практике система справочников, принятая в БАС . Все справочники в одной таблице. В общем, все они содержат относительно не много записей, поэтому эта таблица не растет на столько, что бы заметно было при выборках данных. Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников. Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы. Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса. Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы. Вот так выглядит настройка справочника: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:00 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
PVP Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников. Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы. Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса. Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы. Одно из решений, которое я, возможно, буду использовать - это статичная структура таблиц. Сейчас я предполагаю использование 5-ти таблиц. (Справочник, Запись, Поле, Значение, Тип). Если я понимаю, твоя таблица хранит деревья. Справочник является корнем дерева, поля - его ветвями, значения - листвой. Так ли это? Не возникает ли проблем с проходом по всему дереву (справочнику) для выбора небольшого количества полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:25 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
PVP Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников. Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы. Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса. Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы. Расскажи плиз как устроена твоя таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:27 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohОдно из решений, которое я, возможно, буду использовать - это статичная структура таблиц. Сейчас я предполагаю использование 5-ти таблиц. (Справочник, Запись, Поле, Значение, Тип).На мой взгляд, это перебор в статичности. В БАС таблица, содержащая данные, условно статическая. Т.е. во время работы она статическая. При настройке, если в какой либо справочник добавляется такое поле, которого еще нет ни в одном справочнике, то структура таблицы меняется системными средствами - в нее добавляется новое поле. Есть некоторая избыточность. Но это не страшно, так как в общем объеме базы данных эта таблица пренебрежительно мала. vinniPoohЕсли я понимаю, твоя таблица хранит деревья. Справочник является корнем дерева, поля - его ветвями, значения - листвой. Так ли это? Да обычная таблица. Нужны деревья, помещай поля "Код вершины" и "Код источника" и работай с деревьями. А вообще, в самом начале разработки была допущена ошибка постановки, и работа с деревьями вынесена в отдельный модуль. Хотя ничего не мешает работать с древовидными справочниками в одщей системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:33 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohРасскажи плиз как устроена твоя таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:35 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Ошибся. Предыдущий рисунок под руку попался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:37 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Таблица SSprLst - список спраовочников. SSprGrup - друвовидная структура справочников SSprVar - имена полей, входящих в справочник с их свойствами. SSprData - данные всех справочников. До поля Pr_Str_Table - поля системные. За этим полем - набираются динамически при настройке по мере включения в них разных параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:40 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Остальные таблицы общие для всей системы. Они используются для управления структурой других рабочих таблиц. Их еще несколько - операции, лицевые счета, и еще пара, которые уже практически не используются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 18:41 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
PVPОстальные таблицы общие для всей системы. Они используются для управления структурой других рабочих таблиц. Их еще несколько - операции, лицевые счета, и еще пара, которые уже практически не используются. Примерно так я это и представлял. Но мне бы не хотелось связываться с модификацией таблицы и потом - с избыточностью полей. Я предпочитаю внести еще один уровень - таблицу Значение, которая ссылается на таблицу Поле. Это избавляет от избыточности, но усложняет запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 19:15 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohНо мне бы не хотелось связываться с модификацией таблицы и потом - с избыточностью полей. Я предпочитаю внести еще один уровень - таблицу Значение, которая ссылается на таблицу Поле. Это избавляет от избыточности, но усложняет запросы.Усложнение запросов - это еще пол беды. А вот увеличение времени выборки данных - это уже савсем беда. На счет избыточности. Допустим она равна 100%. Это приведет к тому, что таблица со справочными данными будет, грубо говоря, в два раза больше по объему. Вопрос - как увеличится размер все базы данных в целом? Ответ - он не изменится. Т.к. в серьезной работающей системе Вы будете оценивать размер до 1 ГБ. Вряд ли, точнее. К тому, же на практике, если работать аккуратно с полями, то избыточность на самом деле не большая. Одно и то же поле, например K01, в может использоваться в разных справочниках и при этом иметь совершенно различный смылс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 19:21 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
PVPУсложнение запросов - это еще пол беды. А вот увеличение времени выборки данных - это уже савсем беда. А может и не пол беды, а больше. Если делать программу для продажи, то сложные запросы отобьют охоту у внедренцев работать с такой системой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 19:23 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
PVPВсе справочники в одной таблице. В общем, все они содержат относительно не много записей, поэтому эта таблица не растет на столько, что бы заметно было при выборках данных. доводилось сталкиваться с таким подходом и есть замечания: 1. Как быть с внешними ключами? Если в большой таблице есть записи из нескольких справочников, то как на уровне СУБД ограничить ввод в таблицу данных значений из конкретного справочника? Можно конечно ставить диапазон, но будут проблемы с добавлением значений. Можно во внешний ключ ввести ещё дополнительное поле, но тоже как-то имхо некрасиво. 2. Засорение базы сотней мелких таблиц - это конечно плохо, но есть и плюс - все таблицы имеют свои собственные имена и их можно предсказать при переносе между системами. А в Вашем подходе какое имя будет у справочника если Вы его передадите в стороннюю систему? Вобщем то оба эти замечания скорее религиозные (эмоциональные) чем технические и речь идёт о некой абстрактной красоте системы, но лично мне кажется, что красоту можно считать косвенным показателем качества ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 10:48 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
PVP PVPУсложнение запросов - это еще пол беды. А вот увеличение времени выборки данных - это уже савсем беда. А может и не пол беды, а больше. Если делать программу для продажи, то сложные запросы отобьют охоту у внедренцев работать с такой системой. Справочники, по идее, не сильно затормозят работу системы, ведь обращения к ним происходят достаточно редко, а отчеты по ним вообще не строятся. Насчет внедренцев - это скорее у программистов охота отобъется, так как они будут упрятывать запросы так, что их нигде не будет видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 10:49 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh Очень интересно. А сколько времени разрабатывалась система? Могла ли структура таблицы изменятся после создаиня в рантайме? Были ли проблемы с откатом изменений таблиц? Так называемое "Ядро документооборота" включающее собственно сам документооборот, модуль счетов-проводок и разработка тонкого клиента потребовал где-то 2 человеко-года. Что значит "изменятся после создания" если администратор удалил поле в таблице, или сменил его тип и не отразил изменение в репозитории, то он сам себе "злобный буратино" хранимые процедуры по работе с этим документом не скомпилятся или будут некорректно работать. Откатов как таковых нет ;) соответственно нет и проблем с ними, если администратор удалил параметр документа, то это отразится на ХП, но физически поле в таблице останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 11:23 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
стоит пожалуй более конкретно написать что не нравится в этом подходе, а точнее попробую указать на несостоятельность преимуществ PVP Огромное преимущество - не засоряется база данных мелкими таблицами. Например, только в одной Зарплате более сотни разных справочников. в чём трудность хранения в базе 100-150 дополнительных таблиц, если не считать затрат на придумывание имён для этих таблиц? с именами конечно есть проблемы, но они достаточно легко разруливаются системными соглашениями. PVP Другое преимущество - элементарное добавление новых справочников в живой работающей системе, без остановки, без возни с исходными текстами и последующей перегенерации системы. если в ТЗ на систему сразу стоит ограничение типа "должна быть возможность добавления новых справочников и создания документов, имеющих ссылки на эти справочники", то все перечисленные трудности не зависят от выбранного подхода. Выполнение одного CREATE TABLE никак не проблемнее чем INSERT INTO bigtable... и будет "возня с исходными текстами" или нет тоже лежит целиком на совести разработчика. PVP Третье преимущество - программисты сопровождения должны выучить одну таблицу и правила работы с ней - это происходит за полчаса. ... не только выучить одну таблицу, но и запомнить какие значения имеют одни и те же поля для разных справочников. А вот это уже никак не полчаса для "более сотни справочников". При наличии большого количества мелких таблиц с _одинковой_ общей частью на их освоение тоже уйдёт полчаса. А вот нестандартные дополнительные поля придётся учить и там и там. PVP Следующее - для ввода в данных в справочники и для выбора из них значений используется одна и та же функция - упрощение самой системы. Вот тут поподробнее, пожалуйста - как функция ввода может совпадать с функцией выбора?! Вероятно имеется в виду некая функция пользовательского интерфейса, но это тоже детали... Вобщем итоговое ИМХО - трудности, связанные с неоднозначностью интерпретации значения из большого мега-справочника, а именно ответ на вопрос "Какому под-справочнику принадлежит значение с кодом ХХХХ?", на мой взгляд перевешивают призрачные приимущества, которые указаны в качестве плюсов данного подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 11:34 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPooh Справочники, по идее, не сильно затормозят работу системы, ведь обращения к ним происходят достаточно редко, а отчеты по ним вообще не строятся. Здрасьте! 8-о Как это обращения к справочникам происходят достаточно редко?! А заполнение полей документов? А показ этих документов? Рекомендую считать, что количество обращений к справочникам равно количеству обращений к документам умноженному на количество справочников в документе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 11:37 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Dimkas vinniPooh Справочники, по идее, не сильно затормозят работу системы, ведь обращения к ним происходят достаточно редко, а отчеты по ним вообще не строятся. Здрасьте! 8-о Как это обращения к справочникам происходят достаточно редко?! А заполнение полей документов? А показ этих документов? Рекомендую считать, что количество обращений к справочникам равно количеству обращений к документам умноженному на количество справочников в документе... Верно... Но все равно, скорость здесь не настолько падает, чтобы это было критичным и могло послужить в пользу подхода с использованием SQL DDL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:08 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
[quot vinniPoohНо все равно, скорость здесь не настолько падает, чтобы это было критичным и могло послужить в пользу подхода с использованием SQL DDL.[/quot] попробую дать информацию к размышлению пример из здравоохранения: Демографический справочник ~40 000 записей Справочник городов и улиц ~15 000 записей Справочник диагнозов ~ 13 000 записей Справочник медицинских услуг ~ 5800 записей Классификатор медицинского оборудования ~ 3800 записей … Справочник должностей – 379 записей Справочник специальностей – 175 записей Справочник видов лицензируемых услуг – 59 записей Справочник зон и территорий – 14 записей Внимание, вопрос – по какому из этих справочников наиболее часто строятся аналитические отчёты, подаваемые на стол (монитор) руководителю? минута пошла… А теперь правильный ответ – высокое начальство оперирует сильно сгруппированными данными и для него наибольший интерес представляет самый маленький справочник. А потому для увеличения скорости выборки и группировки Вам придётся в ближайшее время формировать временные таблицы, являющиеся физическим представлением конкретных справочников. Конечно некоторые системы не подразумевают аналитической обработки собираемых данных, но уверяю, что все руководители ей подразумевают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:39 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> Демографический справочник ~40 000 записей > Классификатор медицинского оборудования ~ 3800 записей Вы уверены, что это _справочники_? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 15:16 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Демографический справочник ~40 000 записей > Классификатор медицинского оборудования ~ 3800 записей Вы уверены, что это _справочники_? насчёт демографического - нет :) а вот второй - совершенно точно... встречный вопрос - список уникальных клиентов компании это справочник или нет? что-то мне подсказывает что таки справочник. а значит в любой системе массового обслуживания такой справочник может легко перевалить через указанные 40 тысяч. чего стоит,например, 12 млн. клиентов МТС - и ведь их обрабатывают... вывод - справочники бывают разные и надо смотреть на конкретные нужды. я только хотел предостеречь от сваливания разнородной информации в одну таблицу - плюсы сомнительны, а основной минус - противоречие базовой идее реляционных СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 15:35 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> а вот второй - совершенно точно... Полагаю, Вы ошибаетесь. > встречный вопрос - список уникальных клиентов компании это справочник > или нет? Нет. Это список клиентов компании. > вывод - справочники бывают разные ;) Конечно, разные. Но по сути (не по структуре, конечно) все справочники одинаковы. И назначение у них - одинаковое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:01 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> а вот второй - совершенно точно... Полагаю, Вы ошибаетесь. > встречный вопрос - список уникальных клиентов компании это справочник > или нет? Нет. Это список клиентов компании. > вывод - справочники бывают разные ;) Конечно, разные. Но по сути (не по структуре, конечно) все справочники одинаковы. И назначение у них - одинаковое. с таком случае, пожалуйста, озвучьте Ваше определение термина "справочник" когда я говорил о справочниках имелось ввиду "представление полного набора уникальных значений некоторого признака предметной области, включающее (код, наименование, период действия)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:12 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
продолжение... так что, как говорится, сверим часы :) кстати рахождения в терминологии меня тоже порой смущают и если кто-то приведёт достойный вариант определения для терминов "справочник", "классификатор" то буду очень признателен. заодно надо согласовать порядок использования справочников. свой вариант - справочники используются для упорядочения списка значений признака путём указания краткого и однозначно читаемого кода вместо ввода (ручного) текстового значения. соотвественно уменьшаются затраты на хранение данных (код как правило короче наименования) и повышается достоверность. в такой терминологии "список клиентов компании" вполне укладывается в понятие справочника. с уважением, Дмитрий Жучков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> представление полного набора уникальных значений некоторого признака > предметной области, включающее (код, наименование, период действия) ...полного набора (как правило стандартизованных) относительно редко изменяемых значений. Что, куда и по каким правилам включается - не суть. > справочники используются для упорядочения списка значений признака > путём указания краткого и однозначно читаемого кода вместо ввода > (ручного) текстового значения. Да, но это побочное свойство. > соотвественно уменьшаются затраты на хранение данных (код как правило > короче наименования) Тоже побочное. > и повышается достоверность Да, это одно из основных свойств. Плюс интероперабельность. > в такой терминологии "список клиентов компании" вполне укладывается > в понятие справочника. Нет. По целому ряду причин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:33 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
с терминологией вроде всё нормально, плюс-минус акценты и детали... guest_20040621>> в такой терминологии "список клиентов компании" вполне укладывается > в понятие справочника. Нет. По целому ряду причин. темнишь, парниша :) хотелось бы всё таки хотя бы основные из этих причин узнать. у меня самого запросто может быть несколько однобокое представление о справочниках. во-первых, систему ведения справочников доводилось писать, а вот систем с активным использованием справочников как то не довелось :) во-вторых, часто общаюсь с хранилищами данных и в них есть чёткая паралель между справочником и тем что в терминологии OLAP называется "измерение". соотвественно у меня легко укладывается в голове вот такое рассуждение от обратного - "список клиентов - измерение => список клиентов - справочник" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:47 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> а вот второй - совершенно точно... Полагаю, Вы ошибаетесь. вот краткая выдержка из "Классификатора медицинского оборудования" чем не справочник? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:56 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> хотелось бы всё таки хотя бы основные из этих причин узнать. Часто изменяемый не стандартизованный список. Произвольное (любое, заранее неизвестное) количество признаков. Как правило, значения - не атомарны. Невозможна или затруднена интероперабельность. > часто общаюсь с хранилищами данных и в них есть чёткая паралель между > справочником и тем что в терминологии OLAP называется "измерение" Imho ничего общего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:59 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> вот краткая выдержка из "Классификатора медицинского оборудования" > чем не справочник? Это не справочник. Это каша из классификатора и классифицируемых сущностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 17:05 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Dimkas[quot vinniPoohНо все равно, скорость здесь не настолько падает, чтобы это было критичным и могло послужить в пользу подхода с использованием SQL DDL. попробую дать информацию к размышлению пример из здравоохранения: Демографический справочник ~40 000 записей Справочник городов и улиц ~15 000 записей Справочник диагнозов ~ 13 000 записей Справочник медицинских услуг ~ 5800 записей Классификатор медицинского оборудования ~ 3800 записей … Справочник должностей – 379 записей Справочник специальностей – 175 записей Справочник видов лицензируемых услуг – 59 записей Справочник зон и территорий – 14 записей Внимание, вопрос – по какому из этих справочников наиболее часто строятся аналитические отчёты, подаваемые на стол (монитор) руководителю? минута пошла… А теперь правильный ответ – высокое начальство оперирует сильно сгруппированными данными и для него наибольший интерес представляет самый маленький справочник. А потому для увеличения скорости выборки и группировки Вам придётся в ближайшее время формировать временные таблицы, являющиеся физическим представлением конкретных справочников. Конечно некоторые системы не подразумевают аналитической обработки собираемых данных, но уверяю, что все руководители ей подразумевают :)[/quot] Подобная система справочников добавляет 1-2 join'а в запросы. Не думаю, что это сильно навредит, ведь запросы для отчетов достаточно сложные всегда. Конечно, надо чем-то платить за простоту и скорость разработки. Если добавить в таблицы некоторую избыточность, то можно снизить число join'ов. А так как я предполагаю выполнять все операции с БД только через отдельную библиотеку, то думаю, что проблем из-за такой избыточности не появится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 17:11 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621Часто изменяемый не стандартизованный список. Произвольное (любое, заранее неизвестное) количество признаков. Как правило, значения - не атомарны. Невозможна или затруднена интероперабельность. 1. Что значит часто изменяемый? Часто это как? Любой справочник рано или поздно изменяется. Даже справочник полов человека за последние 50 лет вырос в 2 раза :). Вопрос частоты изменения - это субъективный вопрос, тут важно определиться с чем сравниваем эту частоту. Имхо, сравнивать надо с объёмами регистрируемых с помощью справочника данных. Если справочник меняется раз в минуту (как например список абонентов крупного сотового оператора), а за эту минуту происходит 100 000 звонков, то нельзя сказать что справочник слишком часто меняется. Тоже самое касается и других справочников - если на одно изменение справочника, приходится на 3-5 порядков больше зарегистрированных событий, то значит справочник меняется медленно. Другое дело, что для человеческого восприятия одно изменение в минуту - это конечно слишком быстро :) 2. Количество и состав базовых признаков клиента компании известно с самого начала. А то что какой-то признак может появиться по ходу жизни - это ещё не повод вычёркивать таблицу из справочников, в любом справочнике может добавить признак. 3. Значение чего не атомарны? Строк? Одна строка - один клиент. Ячеек? Ячейки на совести разработчика. 4. "Невозможно или затруднена интероперабельность" - почему? В рамках одной большой компании единый список клиентов, с утверждённой структурой, весьма даже облегчает взаимопонимание между подразделениями. guest_20040621 > часто общаюсь с хранилищами данных и в них есть чёткая паралель между > справочником и тем что в терминологии OLAP называется "измерение" Imho ничего общего. а вот тут, пожалуйста, приведите пару примеров когда измерение не состоит из "полного набора (как правило стандартизованных) относительно редко изменяемых значений"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 07:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621>Это не справочник. Это каша из классификатора и классифицируемых сущностей. вот тут согласен - есть недоработки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 07:20 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohПодобная система справочников добавляет 1-2 join'а в запросы. Не думаю, что это сильно навредит, ведь запросы для отчетов достаточно сложные всегда. Конечно, надо чем-то платить за простоту и скорость разработки. Если добавить в таблицы некоторую избыточность, то можно снизить число join'ов. А так как я предполагаю выполнять все операции с БД только через отдельную библиотеку, то думаю, что проблем из-за такой избыточности не появится. вобщем то как Вы понимаете, мне отговаривать и убеждать особо то и не надо :) тем более что от Красноярска до Минска достаточно далеко даже если вы там систему управления ракетами пишите :) я только хочу сказать, что для задач аналитической обработки лучше разделить справочники по отдельным таблицам, чем сливать их в одну большую. и ещё имейте в виду, что даже если задач анализа данных сейчас нет, то они обязательно появятся через год-два так как это неуклонное эволюционное развитие любых систем обработки информации :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 07:30 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> Даже справочник полов человека за последние 50 лет вырос в 2 раза :). Вы ошибаетесь. Биологических видов человека не прибавилось и не убавилось. > Вопрос частоты изменения - это субъективный вопрос Частота изменений - это одно из условий. Не обязательное. Не самое важное. > Количество и состав базовых признаков клиента компании известно > с самого начала. ;) Ага. Вы читали о проекте национального регистра? > А то что какой-то признак может появиться по ходу жизни - это ещё > не повод вычёркивать таблицу из справочников Это означает только то, что у Вас хм... отличное от моего понимание справочников и их применения. > в любом справочнике может добавить признак. ;) Ну и как Вы себе представляете добавление признака (не языкового эквивалента) для, например, единиц изменения? Валют? Стран? Стандартов? > "Невозможно или затруднена интероперабельность" - почему? ОК, если совсем просто: у некой лавки два относительно независимых филиала. Независимых в том смысле, что эти филиалы регистрируют клиентов самостоятельно. Я утверждаю, что в общем случае при условии регистрации филиалами одних и тех же клиентов Вы не получите полностью идентичные списки. > а вот тут, пожалуйста, приведите пару примеров когда измерение не состоит > из "полного набора (как правило стандартизованных) относительно редко > изменяемых значений"? ;)) Список клиентов - это измерение. Но - не справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 10:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621>Вы ошибаетесь. Биологических видов человека не прибавилось и не убавилось. Биологических видов - нет. А вот промежуточные и переходные полы появились только с операциями по смене пола. guest_20040621 ;) Ага. Вы читали о проекте национального регистра? нет, а есть по близости ссылка? guest_20040621 Это означает только то, что у Вас хм... отличное от моего понимание справочников и их применения. ага, есть такое :) guest_20040621 ;) Ну и как Вы себе представляете добавление признака (не языкового эквивалента) для, например, единиц изменения? Валют? Стран? Стандартов? встречный вопрос - а какие признаки уже есть у единиц измерения? ;) например, в вашем справочнике единиц измерения есть такие признаки как - родительская единица (литр для декалитра, грамм для тонны), - коэффициент отношения с родительской единицей (10 и 10^6 соотвественно)? если нет, то их можно добавить в виде отдельных полей, а если есть, то можно сначала удалить и считать что так и было ;) guest_20040621 ОК, если совсем просто: у некой лавки два относительно независимых филиала. Независимых в том смысле, что эти филиалы регистрируют клиентов самостоятельно. Я утверждаю, что в общем случае при условии регистрации филиалами одних и тех же клиентов Вы не получите полностью идентичные списки. а если у этих филиалов нет процедуры согласования списка клиентов, то кто поручится что у них есть процедура согласования справочников, а? :) guest_20040621 ;)) Список клиентов - это измерение. Но - не справочник. ладно, пора закрывать увлекательную беседу - у нас просто разные представления о справочниках :) и пока жизнь не сталкивает вплотную можно их не согласовывать, а когда/если столкнёт - тогда и продолжим... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 10:40 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621 > "Невозможно или затруднена интероперабельность" - почему? ОК, если совсем просто: у некой лавки два относительно независимых филиала. Независимых в том смысле, что эти филиалы регистрируют клиентов самостоятельно. Я утверждаю, что в общем случае при условии регистрации филиалами одних и тех же клиентов Вы не получите полностью идентичные списки. Я бы не стал утверждать, что добавленные валюты во всех филиалах будут идентичны. То же касается любых справочников, для которых есть возможность редактирования/добавления новых значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 10:40 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Читал вашу беседу. Возник вопрос: а есть ли вообще польза от выделения понятия "справочник"? Помнится, у кто-то здесь спросил, как по-английски "справочник", и никто внятно не ответил (были варианты lookup table, dimension), при том, что английский - признанный язык общения программистов. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 10:54 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> А вот промежуточные и переходные полы появились только с операциями > по смене пола. И очень хорошо. Вот и регистрируйте их как результат операции по смене пола. Не вижу проблем. > нет, а есть по близости ссылка? Нет, к сожалению. Поищите на сайте ГД - вроде на прошлой неделе (или около того) приняли законопроект. > встречный вопрос - а какие признаки уже есть у единиц измерения? ;) Имя, идентификатор. > например, в вашем справочнике единиц измерения есть такие признаки как > родительская единица > коэффициент отношения с родительской единицей Нет, конечно. Отношения и соответствия - другая песня с другой структурой данных. > кто поручится что у них есть процедура согласования справочников, а? :) К сожалению, я не смог донести до Вас то, что хотел. ОК, давайте попробуем по-другому. В xml есть понятие namespace. Представьте, что Вы при проектировании структуры данных также используете некое пространство имен. Так вот структура данных может определять справочник, если Вы можете использовать для ее описания стандартное документированное пространство имен (на самом деле не всегда, но ближе аналогии я не нашел). > есть ли вообще польза от выделения понятия "справочник" Конечно. Методы работы со справочниками существенно отличаются от методов работы с данными другого рода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 11:19 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621 > есть ли вообще польза от выделения понятия "справочник" Конечно. Методы работы со справочниками существенно отличаются от методов работы с данными другого рода. Как-то не очень аргументированно. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 11:23 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> Как-то не очень аргументированно. Мне эта разница (структурная, техническая, организационная) очевидна. Если Вы ее не видите - почему меня это должно беспокоить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 11:42 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
>>при том, что английский - признанный язык общения программистов. При увеличении количества таких топиков признанным языком общения программистов станет индийский. Шютка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 11:59 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
[guest_20040621] > Как-то не очень аргументированно. Мне эта разница (структурная, техническая, организационная) очевидна. Если Вы ее не видите - почему меня это должно беспокоить? [/quot] Просто потому что Вы взялись отвечать на вопрос. Я ответа у Вас лично не требовал. Если нечего сказать кроме "патаму шта", то и не надо отвечать. И слова "мне эта разница очевидна" в сочетании с guest_20040621 (или другим подобным безымянным ником) особенно неубедительны. В любом случае спасибо за ответ. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 12:10 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> Просто потому что Вы взялись отвечать на вопрос. Дружище, чтение мануалов (книг, учебников etc) вслух (или воспроизведение их любым другим способом) - за деньги. Если Вам недосуг самостоятельно ознакомиться с базовыми понятиями проектирования баз данных, наймите репетитора. Ы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 12:35 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Iskander68 guest_20040621 > Как-то не очень аргументированно. Мне эта разница (структурная, техническая, организационная) очевидна. Если Вы ее не видите - почему меня это должно беспокоить? Просто потому что Вы взялись отвечать на вопрос. Я ответа у Вас лично не требовал. Если нечего сказать кроме "патаму шта", то и не надо отвечать. И слова "мне эта разница очевидна" в сочетании с guest_20040621 (или другим подобным безымянным ником) особенно неубедительны. В любом случае спасибо за ответ. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 Я совершенно согласен с Iskander68 в критике гостя, который не аргументирует свои положения, взявшись отвечать на вопрос. В то же время я согласен с гостем в том, что список клиентов и список, например, областей, - это разные вещи. Первое - это таблица с данными, которая предполагает частое изменение, редактирование, она завязана на бизнесс-логике, а второе - нечто, изменяющееся далеко не так часто (согласись, ведь области добавляются или исчезают достаточно редко). Критерием постоянства данных и минимальной связанности их с бизенсс-процессами я и пользуюсь для отличения таблиц с данными от справочников. В то же время этот спор является довольно-таки терминологическим, так как и то, и то представляют собой таблицы в БД, и соглашение о наименовании некоторых таблиц справочниками является относительным. Более того, при в разных приложениях одна и та же сущность может быть или справочником, или таблицей с данными. Отсылаю далее к первоисточникам (проектирование БД), которые указать не могу. Предлагаю справочником в текущем топике называть то, что редко изменяется и слабо связано с бизнесс-процессами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 12:39 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> например, в вашем справочнике единиц измерения есть такие признаки как > родительская единица > коэффициент отношения с родительской единицей Нет, конечно. Отношения и соответствия - другая песня с другой структурой данных. Конечно есть определённый смысл в том, чтобы все справочники ограничить минимально простой структурой (код, наименование-на-родном-языке, наименование-на-иностранном-языке), но тогда для любого дополнительного признака элемента придётся делать дополнительную таблицу. А что изменится от того будет ли у нас одна таблица в справочнике или их будет две (три, ...)? Ведь для любой нетрививальной обработки справочника придётся дергать дополнительную таблицу - смысл? guest_20040621 К сожалению, я не смог донести до Вас то, что хотел. ОК, давайте попробуем по-другому. В xml есть понятие namespace. Представьте, что Вы при проектировании структуры данных также используете некое пространство имен. Так вот структура данных может определять справочник, если Вы можете использовать для ее описания стандартное документированное пространство имен (на самом деле не всегда, но ближе аналогии я не нашел). guest_20040621 > есть ли вообще польза от выделения понятия "справочник" Конечно. Методы работы со справочниками существенно отличаются от методов работы с данными другого рода. тут соглашусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:22 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621 > Просто потому что Вы взялись отвечать на вопрос. Дружище, чтение мануалов (книг, учебников etc) вслух (или воспроизведение их любым другим способом) - за деньги. Если Вам недосуг самостоятельно ознакомиться с базовыми понятиями проектирования баз данных, наймите репетитора. Ы? Любезнейший! Оставьте высокомерный тон для тех, для кого Вы являетесь авторитетом. По-моему я уже сказал "спасибо". Видимо, я выразился недостаточно понятно. Я имел в виду, что более в Ваших ответах (равно как и непрошенных советах и тем паче услугах не нуждаюсь). Надеюсь, что сейчас я более ясно выразился. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:24 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohВ то же время я согласен с гостем в том, что список клиентов и список, например, областей, - это разные вещи... Винни, я вообще не спорил по поводу того, является ли список клиентов справочником. Вопрос был, почему нужно выделять понятие "справочник", т.е. что это дает в практическом плане. Я проштудировал 3 учебника по БД. Ни в одном из них я не нашел термина "справочник" (не говоря уже о его определении). Видимо, плохо искал. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:30 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> Конечно есть определённый смысл в том, чтобы все справочники ограничить > минимально простой структурой Структура каждого справочника может быть уникальной, дело не в этом. Удобно и для проектирования, и для эксплуатации выделить несколько функционально типовых элементарных структур: справочники, классификаторы, конфиги и пр. > А что изменится от того будет ли у нас одна таблица в справочнике или их > будет две (три, ...)? Хм... Вас на философию потянуло? ;) Действительно, какая разница, использовать соглашения и стандарты или нет? ;) На самом деле разница тривиальна: в одном случае жизненный цикл продукта будет короче и его функциональные возможности будут меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:33 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Кстати заметить: казалось бы, классификаторы встречаются в каждой базе данных. Между тем, ни разу не видел ни одного удобного, логичного, правильного классификатора (я имею в виду структуру). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:35 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
vinniPoohБолее того, в разных приложениях одна и та же сущность может быть или справочником, или таблицей с данными. подписываюсь :) vinniPoohПредлагаю справочником в текущем топике называть то, что редко изменяется и слабо связано с бизнесс-процессами. тоже согласен, процентов на 95 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:44 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Iskander68 Я проштудировал 3 учебника по БД. Ни в одном из них я не нашел термина "справочник" (не говоря уже о его определении). Видимо, плохо искал. можете не искать - нет такого в теории БД :) справочник - это разновидность таблицы, для которой в рамках данной системы определены дополнительные ограничения на структуру и способы обработки. guest_20040621 Хм... Вас на философию потянуло? ;) Действительно, какая разница, использовать соглашения и стандарты или нет? ;) На самом деле разница тривиальна: в одном случае жизненный цикл продукта будет короче и его функциональные возможности будут меньше. это как раз был мой вопрос - почему не добавить в справочник ЕИ дополнительные поля соотношений? Вы ответили, что это совсем другая история и для этого нужны доп. таблицы. Вот я и спрашивают - зачем нужны доп. таблицы когда всё это можно уложить в сам справочник? guest_20040621Кстати заметить: казалось бы, классификаторы встречаются в каждой базе данных. Между тем, ни разу не видел ни одного удобного, логичного, правильного классификатора (я имею в виду структуру). вот тут да-а-а! почему то всё что встречается в природе имеет шибко загадочную структуру... кстати вопрос ко всем - чем отличаются справочник и классификатор? я в своих работах их считаю синонимами, а может есть варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 13:58 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> зачем нужны доп. таблицы когда всё это можно уложить в сам справочник? Затем, чтобы получить нормальную структуру данных. "Нормальную" - в смысле по крайней мере 3НФ. > кстати вопрос ко всем - чем отличаются справочник и классификатор? Встречный вопрос: а чем они похожи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 14:18 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Dimkas можете не искать - нет такого в теории БД :) Т.е. получается, что теоретики БД просмотрели ситуацию guest_20040621Методы работы со справочниками существенно отличаются от методов работы с данными другого рода. Dimkasсправочник - это разновидность таблицы, для которой в рамках данной системы определены дополнительные ограничения на структуру и способы обработки. ИМХО определение, которое конкретики по теме не добавляет. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 14:23 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Iskander68 Dimkas можете не искать - нет такого в теории БД :) Т.е. получается, что теоретики БД просмотрели ситуацию На то они и теоретики, чтобы в практику не лезть. А этот так называемый справочник - явление, которое на практике только появляется и используется. Теории БД все равно, для чего таблица используется, а программисту нет. Поправьте меня, если я не прав. Iskander68 guest_20040621Методы работы со справочниками существенно отличаются от методов работы с данными другого рода. Dimkasсправочник - это разновидность таблицы, для которой в рамках данной системы определены дополнительные ограничения на структуру и способы обработки. ИМХО определение, которое конкретики по теме не добавляет. С теоретический точки зрения только запутывает, но на практике мы определяем отдельные (в случае java) классы или их структуру для работы со справочниками. Эта структура отличается простотой операций (добавить/удалить/изменить/выбрать) с бд, в отличие от бизнесс-логики (провести платежный документ...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 14:52 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> зачем нужны доп. таблицы когда всё это можно уложить в сам справочник? Затем, чтобы получить нормальную структуру данных. "Нормальную" - в смысле по крайней мере 3НФ. > кстати вопрос ко всем - чем отличаются справочник и классификатор? Встречный вопрос: а чем они похожи? Кстати, насчет НФ - они в общем случае хорошее явление, но иногда введение некоторой избыточности в разы облегчает программисту жизнь и в десятки раз - производительность системы. А если к бд обращаются только с помощью своей библиотеки или предусматривают средства для поддержания этой избыточности в актуальном состоянии, то проблем с целостноть данных не возникает. Но в общем случае 3НФ - оптимальный вариант. Кстати, я тоже с трудом улавливаю разницу между справочником и классификатором. Насколько я понимаю, классификатор - это особый вид справочника. Прошу помнить о том, что эта терминология в каждом проекте значит немного (или даже очень много) свое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 14:57 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
Спорить бессмысленно. Оба понятия - синонимы. А различия могут варьироваться от Афтара к Афтару. Да и выделение этого понятия в чёткий термин тоже даёт мало пользы, т.к. неизменность данных понятие для справочника неоднозначное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 14:57 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
> Кстати, насчет НФ - они в общем случае хорошее явление, но иногда введение > некоторой избыточности в разы облегчает программисту жизнь и в десятки раз - > производительность системы. Вы неправильно представляете себе значимость компонентов ПО. Иерархия: общая архитектура ПО, соглашения и стандарты, структура данных, далее - все остальное. И абсолютно неважно, что, где и кому удобнее. Как правило, разговорами о производительности маскируется кривизна рук. > Насколько я понимаю, классификатор - это особый вид справочника. Нет. Назначение классификатора - группировка классифицируемых сущностей. О назначении справочника говорилось выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 15:10 |
|
||
|
Непостоянное число справочников с редактируемыми числом и типом полей
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Кстати, насчет НФ - они в общем случае хорошее явление, но иногда введение > некоторой избыточности в разы облегчает программисту жизнь и в десятки раз - > производительность системы. Вы неправильно представляете себе значимость компонентов ПО. Иерархия: общая архитектура ПО, соглашения и стандарты, структура данных, далее - все остальное. И абсолютно неважно, что, где и кому удобнее. Как правило, разговорами о производительности маскируется кривизна рук. > Насколько я понимаю, классификатор - это особый вид справочника. Нет. Назначение классификатора - группировка классифицируемых сущностей. О назначении справочника говорилось выше. Кстати, многие опытные разработчики согласны со мной насчет НФ. Более-менее ясно, что такое классификатор. Возможно, в твоем приложении эта разница принципиальна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 15:39 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1545541]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
117ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 545ms |

| 0 / 0 |
