|
|
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Добрый день, сообщество! Хотелось бы разъяснить следующий вопрос, из за которого я со своим руководителем сцепился не на жизнь, а на смерть! Рассмотрим, стандартную ситуацию: справочник заявок и атомарный справочник статусов заявок(открыта, закрыта, в процессе, это к примеру), в них связь один-ко-многим. Из справочник статусов формируется(select id value, name display from status) list of values(GUI элемент selectlist), из которого я и выбираю значение, а в таблицу заявок вставляется его код. И таких пар в схеме может быть много, с использованием атомарных справочников. Это обычный академический вариант, предложенный мной. Руководитель предлагает: Все эти справочники "согнать" в один общий справочник(аттрибуты: имя справочника, значение(аббревиатура), описание(то что пользователь будет видеть в приложении)), в котором будет поле "имя справочника", и по фильтру на котором я и получю нужный list of values. То есть никакой физической связи со справочником заявок не будет, а вся логика будет перенесена на уровень приложения, где я буду отслеживать из какого справочника мне нужен именно в этой таблице взять значение. Ладно я выбери из списка в приложении именно тот справочник и выберу в нем значение, и что дальше? что я вставлю в status таблицы заявок, код из общей таблицы справочников? А если какой нибудь справочник надо поменять, и не изменить значение, а добавить, то все записи сдвинутся, и коды поменяются(рассматриваю вариант с полным пересозданием) и тогда вообще будет охинея. А если вставлять не код, а как предлагает руководитель "значение", и типа это "значение" должно быть уникально во всех справочниках, но может же быть ситуация, что в разных справочниках может быть одно и тоже буквенное сочетание, но разное по описанию. То есть вставив это "значение", я не смогу произвести обратную трансформацию в display name статуса, так как мне возратится не одна запись а несколько из глобального справочника. Что бы обойти это, то нужно еще накладывать большую логику на приложение, что бы мне искать в глоб справочнике значение по определенному справочнику в зависимости от текущего состояния приложения. Еще выход - что бы сослаться уникально, то нужно использовать связку имя "справочника-значение" и хранить ее в id_status таблицы заявки. Соответственно здесь получается никакой физ. связи между мастер таблицей и атомарным справочником, и если поменяется что то в глобальной таблице это не приведет в изменении в ней. Надо жестко все контролировать на уровне приложения. Но это как то получается все оч толсто!!! Но руководитель настаивает что это бэст практишь и вообще все отходят от форин ключей, и хранят сами значения, а не ссылки на них ввиде идентификатора, как по науке. Вообщем такая, казалось бы, простая ситуация завела в "тупик"! Коллеги, что можете сказать по данной ситуации, что все таки является бэст практишь? Спасибо за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasik<> Коллеги, что можете сказать по данной ситуации, что все таки является бэст практишь? <>наилучшей практикой является поменять рукомахателя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwq...поменять рукомахателя Это не имеет отношения в сабжу! интересует практика... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
вообще все отходят от форин ключей, и хранят сами значенияТут нет единственно правильного решения. Форин-ключи мешают, если необходимо перенести часть данных в другую аналогичную систему (могут "задвоиться"). Необходимы некоторые усилия, чтобы поддерживать ключи-значения в читабельном и понятном виде. Решение вытекает от правильно поставленных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:49 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikинтересует практика... 1. хранить ссылки, а не "значения" 2. хранить все в одной таблице - только если вы делаете не оригинальную прогу, а конструктор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikникакой физической связи со справочником заявок не будет Куда денется? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:58 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovkasikникакой физической связи со справочником заявок не будет Куда денется? Если ссылаться на внутренний ИД значения справочника, а не уникальный ИД записи то ФК не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:09 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikВсе эти справочники "согнать" в один общий справочник(аттрибуты: имя справочника, значение(аббревиатура), описание(то что пользователь будет видеть в приложении))Очень распространенный способ, обычно даже предпочтительный, если есть уверенность, что значения не будут обрастать атрибутами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:12 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenЕсли ссылаться на внутренний ИД значения справочника, а не уникальный ИД записи то ФК не будет. А какой идиот не ссылается на первичный ключ?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:27 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Потому что это не есть уникальное определение определенного дискрипшена в глобальном справочнике, если брать все таки в учет что жизнь не статика, а что то может добавится, что приведет к сдвигу в этом глобальном справочнике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:36 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasik, Непонятно, о каком "сдвиге" Вы говорите. В нормальных системах существующие строки не меняются, если надо добавить в таблицу новую строку. По основной теме - единый метасправочник, как предлагает Ваш начальник, делать можно (ну если не считать странной идеи про хранение значений). Обычно для этого требуются причины (поскольку в общем случае это менее прямой способ, чем "классический"), есть ли они в Вашем случае - отсюда судить затруднительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, имеется ввиду что сейчас не продакшен, когда больше ничего в атомарных справочниках не меняется, а девелопмент-система, когда еще может быть изменения, как редактирования значений так и добавления их. Используется case-средство Oracle data modeler, дак вот за эти справочники отвечают так называемые домены, но при генерации они выражаются как в check constrans, что не совсем удобно, произведя некоторые манипуляции с импортов в бд метаданных проекта, вытаскиваю эти домены в одну таблицу - глобальный справочник. То есть каждый раз мне нужно его пересоздавать заново, так проще. и соответственно сиквенсы все собьются и ссылки будут уже на другое значения описания! А если как говорите вы, то это мне нужно делать дополнительную манипуляцию по вычислению разницы между двумя глобальными справочниками, новым и старым и добавлять только те значения, которые добавились, а если произошли изменения в значении описания.... Вообщем как то так, куда не кинь везде клин! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:03 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikНо руководитель настаивает что это бэст практишь и вообще все отходят от форин ключейБессовестно врет. Ну или добросовестно заблуждается. Как Сердюков kasikКоллеги, что можете сказать по данной ситуации, что все таки является бэст практишь?Бэст практишь по этой ситуации описал qwwq. Кто принимает окончательное решение, тот и прав. Насколько я понимаю, какое бы решение вы ни приняли, из-за него проект не провалится, максимум увеличится количество геморроя. Считаете начальника дятлом - найдите умного или сами стеньте начальником. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Один раз вытащил свои "домены" в глобальный справочник и убил их. Всё, проблема решена. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikИспользуется case-средство Oracle data modelerЕсли вам водка мешает работать... Может, ну его, это case-средство? Я когда-то тоже пытался всей этой фигней страдать, потом понял, что лучшее средство создавать объекты в БД - это писать вручную скрипты "create table ..." и заполнять справочники аналогично - написанными вручную "insert into". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:12 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА какой идиот не ссылается на первичный ключ?.. Да много кто. Oracle, например, в OeBS :) Если у меня будет тыща справочников в виде ключ-значение по 2-3 значения, то смысла делать тыщу таблиц и запариваться с их ФК я не вижу никакого. Но если мсье знает толк в извращениях - наслаждайтесь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:18 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
rockclimberЕсли вам водка мешает работать... Может, ну его, это case-средство? Я когда-то тоже пытался всей этой фигней страдать, потом понял, что лучшее средство создавать объекты в БД - это писать вручную скрипты "create table ..." и заполнять справочники аналогично - написанными вручную "insert into".Собрались мы как-то студентами на квартире. Так сказать культурно отдохнуть. Была и гитара, которая пошла в ход после некоторого времени. Хозяин квартиры был более продвинутым (:)) музыкантом и решил помочь - включил метроном. На что гитарист/вокалист, через некоторое время сказал: "Выключи, он меня сбивает". Это я к чему. Если CASE-средства вам мешают, так может стоит научиться их использовать по назначению? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenDimitry SibiryakovА какой идиот не ссылается на первичный ключ?.. Да много кто. Oracle, например, в OeBS :) Вот он про это постоянно и говорит, что сам оракл давно это использует. Вижу еще одни + глобального листа - управления расположение в gui-селектлисте, например в справочнике городов, наверху всегда должны самые часто используемые - Питер, Москва и тд и тп. Но этот сиквенс можно вести и в отдельных справочниках, так что профит... Значит получается: Использовать глобальный справочник нужно с обычными идентификаторами через сиквенс, а добавлять новые последовательно, что бы не было сдвигов. И он будет условно-статичный в части статичных, неменяемых, идентификаторов. Пока так вижу выход... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:03 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikВижу еще одни + глобального листа - управления расположение в gui-селектлисте, например в справочнике городов, наверху всегда должны самые часто используемые - Питер, Москва и тд и тп. Но этот сиквенс можно вести и в отдельных справочниках, так что профит... Значит получается: Использовать глобальный справочник нужно с обычными идентификаторами через сиквенс, а добавлять новые последовательно, что бы не было сдвигов. И он будет условно-статичный в части статичных, неменяемых, идентификаторов. Пока так вижу выход...Я мало что понял. Приведу описание типового решения: Таблица перечислений - (такой вид справочников называем так, ну или справочники ListOfValues) - Код справочника - строка - уникальный код - Название - строка -краткое название - Описание - строка - описание справочника Таблица значений - Код справочника - строка - Код значения - строка - уникальный код значения внутри справочника. Обеспечивается уникальным индексом Код справочника + Код значения) - Название - строка - Описание - строка Коды представлены строками для удобства. Например те же статусы обрабатываются в коде и использование строковых значений повышает читаемость. Дополнительно (в зависимости от СУБД, условий) вводятся: - уникальный ИД - целое - автоинкримент или сиквенс - видимость - булево - можно скрывать значения Также вводятся функции или ХП получения списков значений. Далее в GUI можно ввести контрол работы со значением справочника, в котором указывается имя справочника. Это если такого контрола еще нет. kasikВижу еще одни + глобального листа - управления расположение в gui-селектлисте, например в справочнике городов, наверху всегда должны самые часто используемые - Питер, Москва и тд и тп. Города в такой справочник я бы не выносил, поскольку география отталкивается обычно от хоть каких-то адресных классификаторов с известной структурой. В РФ это КЛАДР, ФИАС или еще что-то. Для Москвы, например, адресный справочник БТИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 17:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasik Все эти справочники "согнать" в один общий справочникИдея "универсального" справочника просто обязана придти в голову каждого начинающего проектировщика. Это как детские болезни - оба-на смотри братва как я умею. Кроме лишнего кода для дополнительной проверки в приложении, остальные недостатки данного подхода маловероятны. Правда по зрелому размышлению достоинств у данной структуры НЕТ ВООБЩЕ. Поищите здесь по сочетанию "универсальные справочники" найдете много флейма. Infernal V. Raven Если у меня будет тыща справочников в виде ключ-значение по 2-3 значения, то смысла делать тыщу таблиц и запариваться с их ФК я не вижу никакогоНу придется делать тыщу вьюх - чем легче станет? Сущность то никуда не делась. А много похожих таблиц легко автоматизируется при условии соблюдения соглашений о наименованиях. kasik А если вставлять не код, а как предлагает руководитель "значение",Любитель естественных ключей детектед. Опять же ищите по сочетанию "естественные ключи vs суррогаты" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 17:53 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Вообщем все слилось в холивар, который я начал! Так? Значит и тот и другой вариант "хорош", и отталкиваемся лишь от архитектора, который несет ответственность за все в целом. Просто я подозреваю чем это может закончится, я буду работать с "***ном" и окажусь еще и крайним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Правда по зрелому размышлению достоинств у данной структуры НЕТ ВООБЩЕ.На мой взгляд слишком категоричное утверждение. SERG1257Ну придется делать тыщу вьюх - чем легче станет? Сущность то никуда не делась. А много похожих таблиц легко автоматизируется при условии соблюдения соглашений о наименованиях.А зачем тысяча вьюх? Для запросов, где нужно вытащить значение выполняться JOIN таблицы значений с условием Справочник='МойСправочник' и КодВТаблице=КодЗначения. Притом это требуется в основном для отображения списочных форм и отчетов. А в формах используются контролы, которые сами уже умеют вытаскивать нужные данные. kasik Любитель естественных ключей детектед. Опять же ищите по сочетанию "естественные ключи vs суррогаты"В свое время был апологетом суррогатных ключей. Пока не пришлось заняться с тиражируемыми системами :) Если логика приложения плотно завязана на значения справочника, то код Код: sql 1. 2. 3. 4. читаем и сопровождаем. С суррогатами такой фокус не прокатывает. А ФК, кстати, снижают производительность поэтому, например, иметь таблицу в нагруженной OLTP-системе со 100 справочными полями для массовой вставки нецелесообразно. А без ФК я смысла в 1000 таблиц справочника не вижу вообще. Я не являюсь противником классического подхода с организацией в виде таблиц, но являюсь противником бездумного следования какой-то одной идеологии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikВообщем все слилось в холивар, который я начал! Так?Да вроде нет. Иначе бы тут уже 100 страниц было бы. kasikЗначит и тот и другой вариант "хорош", и отталкиваемся лишь от архитектора, который несет ответственность за все в целом. Конечно это задача архитектора. Насчет этой задачи могу порекомендовать осмотрительнее подходить к выбору способа реализации каждого справочника (таблица/перечисление). Если есть достаточно веские подозрения, что: - справочник будет иерархический - справочник будет иметь доп.значения помимо код/значение - объем справочника не влазит в комбобокс :) (скажем у меня больше 100 значений вызовут подозрение) то стоит реализовывать справочник в виде таблицы. В ином случае можно загнать в справочник перечислений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
В моем случаи, получается, какой способ использовать что бы не было "бездумного следования какой-то одной идеологии"!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:48 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Raven На мой взгляд слишком категоричное утверждение. Приведите нормальный реальный измеримый выигрыш. Хоть один. Замена нормальных физических таблиц логическими (размазанными по приложению запросами или вьюхами) ну никак не тянет на выигрыш. Зачем делать за СУБД ее работу? Infernal V. Raven А в формах используются контролы, которые сами уже умеют вытаскивать нужные данные.Сами это как? Я бы предположил, что прежде чем контролы сами будут вытаскивать данные им надо либо указать на таблицу/вьюху или написать запрос. Infernal V. Raven С суррогатами такой фокус не прокатывает.Одно другому не мешает. У значения справочника есть айди для ссылочной целостности (и только для ссылочной целостности), есть код или мнемокод для вашего примера, есть наименование для чтения пользователем, может быть длинное описание для вывода отчета. Infernal V. Raven А ФК, кстати, снижают производительность поэтому, например, иметь таблицу в нагруженной OLTP-системе со 100 справочными полями для массовой вставки нецелесообразно.Дайте определение массовой вставки. Для OLTP-системы заливка данных разовое мероприятие. А для поштучных вставок ФК - самый дешевый способ обеспечить целостность. Infernal V. Raven но являюсь противником бездумного следования какой-то одной идеологии. Согласен, но данной сферической задачи в вакууме начинать надо с правильного подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasik атомарный справочник статусов заявок Поясни, пожалуйста, что такое "атомарный справочник" ? Справочник атомарных весов химических элементов таблицы Менделеева ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Все эти справочники "согнать" в один общий справочник (аттрибуты: имя справочника, значение(аббревиатура), описание(то что пользователь будет видеть в приложении) ), в котором будет поле "имя справочника", и по фильтру на котором я и получю нужный list of values. Ну, что ж, так иногда делают, особенно это полезно, когда таких простейших справочников очень много. Типа 200. Тогда это очень выгодно. То есть никакой физической связи со справочником заявок не будет, а вся логика будет перенесена на уровень приложения, где я буду отслеживать из какого справочника мне нужен именно в этой таблице взять значение. Физическая связь может и присутствовать, другое дело, ты не сможешь средствами СУБД (констрейнтов) контролировать, что в нужную таблицу попали значения именно из нужного справочника. Это не страшно, это можно контролировать логикой приложения, реализованной в триггерах, хранимых процедурах или каком-то ещё коде. Не обязательно это контролировать в самой БД. Ладно я выбери из списка в приложении именно тот справочник и выберу в нем значение, и что дальше? что я вставлю в status таблицы заявок, код из общей таблицы справочников? А если какой нибудь справочник надо поменять, и не изменить значение, а добавить, то все записи сдвинутся, и коды поменяются(рассматриваю вариант с полным пересозданием) Это с какого перепугу ? PK никогда не меняются. и тогда вообще будет охинея. А если вставлять не код, а как предлагает руководитель "значение", и типа это "значение" должно быть уникально во всех справочниках, но может же быть ситуация, что в разных справочниках может быть одно и тоже буквенное сочетание, но разное по описанию. То есть вставив это "значение", я не смогу произвести обратную трансформацию в display name статуса, так как мне возратится не одна запись а несколько из глобального справочника. Что бы обойти это, то нужно еще накладывать большую логику на приложение, что бы мне искать в глоб справочнике значение по определенному справочнику в зависимости от текущего состояния приложения. Еще выход - что бы сослаться уникально, то нужно использовать связку имя "справочника-значение" и хранить ее в id_status таблицы заявки. Соответственно здесь получается никакой физ. связи между мастер таблицей и атомарным справочником, и если поменяется что то в глобальной таблице это не приведет в изменении в ней. Всё это я нифига не понял. Надо жестко все контролировать на уровне приложения. Да, надо. Ничего страшного. И главное -- её надо контролировать и так, и так. Т.е. по-любому эта логика должна быть, а в БД или на среднем слое должна быть ещё одна такая же. Увы. Но это как то получается все оч толсто!!! Жызнь ваапще сложная штука... Но руководитель настаивает что это бэст практишь и вообще все отходят от форин ключей, и хранят сами значения, а не ссылки на них ввиде идентификатора, как по науке. Тут руководитель не совсем прав. FK, если их можно сделать, очень хорошая штука. Но как правило это -- 20 подстраховка в самом-самом нижнем уровне. Когда всё остальное уже отработало и 3 раза всё перепроверило. Но это не значит, что их не нужно делать, НУЖНО. И особенно они хороши, когда данные правят программисты руками -- там уже 3 перепроверок нет, и остаются одни констрейнты. Итого. ЕДиний общий справочник вместо 200 одинаковых типа "ключ-значение" -- это благо. FK при этом НАДО создавать. ПОтому что любые декларативные констрейнты в БД -- тоже благо (если очень не мешают производительности). FK при этом теряет немного свою мощность, так как не может проверить, что дочерняя сущность ссылкается на значение справочника именно нужного типа. Поэтому, если можно, лучше проверять это дополнительно, в коде процедур, триггерами или на среднем слое в сервере приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:14 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Приведите нормальный реальный измеримый выигрыш. Хоть один. Замена нормальных физических таблиц логическими (размазанными по приложению запросами или вьюхами) ну никак не тянет на выигрыш. Зачем делать за СУБД ее работу?Какую работу делает таблица перечислений? Таблица перечислений и много таблиц со справочными значениями не делают никакой работы. Они хранят данные. Какие количественные характеристики вы хотите рассматривать, объем? А в плане удобства использования - это зависит от того, кто/как использует вариант работы Таблица/перечисление. Криворуко можно сделать в любом случае. SERG1257Сами это как? Я бы предположил, что прежде чем контролы сами будут вытаскивать данные им надо либо указать на таблицу/вьюху или написать запрос.Контролу указывается название справочника. Запросы определяются в базовом классе контрола и название справочника передается параметром. SERG1257Одно другому не мешает. У значения справочника есть айди для ссылочной целостности (и только для ссылочной целостности), есть код или мнемокод для вашего примера, есть наименование для чтения пользователем, может быть длинное описание для вывода отчета.Ок. Предположим есть таблица транзакций FT_ID - number FT_STATUS_ID - number(FK) Ссылочная целостность присутствует. Тогда таблица статусов с суррогатом будет такой FT_STATUS_ID - number - суррогат USER_STATUS_ID - это мненмокод? STATUS_NAME - название Все правильно? Тогда чтобы получить читаемый код (как я писал выше) нужно писать запросы с присоединением справочника. Не проблема конечно, но лишний раз мне это делать было всегда лень. Также как и иметь PK+уникальный индекс для пользовательского кода на справочнике. В случае хранения натурального ключа - код сразу известен. SERG1257Дайте определение массовой вставки. Для OLTP-системы заливка данных разовое мероприятие.Да ладно! Есть такой класс задач - биллинг, есть непрерывный, есть периодический. И в том, и в другом массовая обработка данных постоянное явление и зачастую критичное по времени, поэтому за производительность всегда борются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:14 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Приведите нормальный реальный измеримый выигрыш. Хоть один. Замена нормальных физических таблиц логическими (размазанными по приложению запросами или вьюхами) ну никак не тянет на выигрыш. Зачем делать за СУБД ее работу? Например затем, что в этом случае добавление нового справочника не требует написания новых запросов и/или использования динамического SQL. Не требует создания новых форм его редактирования/наполнения/выбора. Не требует права на CREATE TABLE и потому может осуществляться даже ограниченным пользователем. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:17 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasikИспользовать глобальный справочник нужно с обычными идентификаторами через сиквенс, а добавлять новые последовательно, что бы не было сдвигов. И он будет условно-статичный в части статичных, неменяемых, идентификаторов. Пока так вижу выход... Вообще в таких случаях лучше всего использовать идентификаторы в виде символьных шифров, идентифицирующих экземпляры сущностей. gender ('M', 'F') marital_status( 'SNGL', 'MR', 'WD', 'DV' ) и так далее. Но ежели вы уж используете числовые идентификаторы, то какого ж фига вы их каждый раз перенумеровываете ? Не, если каждый раз БД с нуля генерируется, то можно, но если нет -- менять их нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:20 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
А так ли это хорошо, что любой пользователь (имеющий доступ к справочной таблице) может просматривать содержимое всех справочников ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSERG1257Приведите нормальный реальный измеримый выигрыш. Хоть один. Замена нормальных физических таблиц логическими (размазанными по приложению запросами или вьюхами) ну никак не тянет на выигрыш. Зачем делать за СУБД ее работу? Например затем, что в этом случае добавление нового справочника не требует написания новых запросов и/или использования динамического SQL. Не требует создания новых форм его редактирования/наполнения/выбора. Не требует права на CREATE TABLE и потому может осуществляться даже ограниченным пользователем. Ещё "очень выгодно" такое, если надо находу добавить новый справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:22 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dmitry EliseevА так ли это хорошо, что любой пользователь (имеющий доступ к справочной таблице) может просматривать содержимое всех справочников ?Обычно туда загоняются такие значения, которые не требуют ограничения видимости. Но можно и прикрутить конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:27 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Например затем, что в этом случае добавление нового справочника не требует написания новых запросовАга а select id,code,descr from universal_dict where dict_type='Новый справочник' само появится? В любом случае это будет генератор. А ему не пофиг ли сгенерировать select id,code,descr from 'Новый справочник'. Dimitry Sibiryakov Не требует создания новых форм его редактирования/наполнения/выбораТо бишь формы тоже с неба появляются. Или вы не умеете одну и ту же форму натравливать на разные таблицы с одинаковыми именами полей? авторНе требует права на CREATE TABLE и потому может осуществляться даже ограниченным пользователем. Ещё "очень выгодно" такое, если надо находу добавить новый справочник. Вот чисто из любопытсва приведите пример - маша шла шла шла и справочник нашла. Или все же это патч на базу - для создания новых объектов плюс патч на приложение что бы уметь работать с новыми объектами. Dmitry Eliseev А так ли это хорошо, что любой пользователь (имеющий доступ к справочной таблице) может просматривать содержимое всех справочников ? И я о том. Плюс все другие недостатки типа заблокировали один справочник (да я знаю что он крошечный и это выдуманный пример), а страдают все. Плюс в случае бага (тоже выдуманный пример) в коде проверки, То бишь шила в мешке не утаишь. Отказы от физических таблиц просто перетягивает одеяло в сторону приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Ага а select id,code,descr from universal_dict where dict_type='Новый справочник' само появится? Когда-нибудь слышали про параметризованные запросы?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 19:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Плюс в случае бага (тоже выдуманный пример) в коде проверки,В случае бага или отключения плохие данные могут попасть в базу, и включение проверки их никак не выявит, в то время как констрейнт просто не включится. То бишь опять надо делать лишний шаг. Infernal V. Raven Какую работу делает таблица перечислений? Таблица перечислений и много таблиц со справочными значениями не делают никакой работы. Работу делает программер добавляя кусочки кода туда и сюда. Вместо объявления констрейна. Dimitry Sibiryakov Когда-нибудь слышали про параметризованные запросы?Слышал. И какое это имеет отношение к обсуждению. И в том и в другом случае надо писать код (больше меньше не суть важно) само ничего не появляется. Экономия в написании кода - копейки по сравнению со временем жизни приложения. Конечно программер считает иначе, ибо для него все заканчивается внедрением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 20:03 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, "вы когда нть слышали про динамический скл" ? /* к которому сводится использования 100500 разных справочников (содержазих даже по разному именованные поля), описанных единожды в некоем метасправочнике ? что, однако не мешает вешать на всё это богатство самые взаправдашние ФКеи? или вы у нас автор недосубд, не умеющей их, фкеи, правильно готовить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 20:12 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
бггг недосубд, не умеющей их, фкеи, правильно готовить ?Давайте все же на личности не переходить. Я говорю же универсальный справочник, это как детская болезнь. Да так тоже можно, но нужно ли. Я перебирал аргументы и не нашел ни одного довода за, при возможных (пусть и маловероятных) доводов против. Стало быть, надо поступать правильно, хотя это скучно и банально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 20:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНапример затем, что в этом случае добавление нового справочника не требует написания новых запросов и/или использования динамического SQL. Не требует создания новых форм его редактирования/наполнения/выбора. Не требует права на CREATE TABLE и потому может осуществляться даже ограниченным пользователем. Ну вот не понимаю, какая польза в добавлении такого "нового справочника" как таковом. Как минимум, еще надо добавить поле в master-таблицу, где будет храниться новоявленный признак. На master-формы редактирования положить lookup, запрограммированный на обращение к новоявленому справочнику. В формах параметров отчетов сделать то же. Конечно, возможен вариант, когда в master-таблице все это тоже хранится в EAV, а формы динамически конфигурируются метаданными, так что система подхватит мысль пользователя на лету, и все заработает само. Но это далеко выходит за рамки топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 20:54 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
kasik, Если начальник, то это совсем не значит, что он идиот. Просто у вас с ним кругозор принятия решений разный. Вы по своему статусу должны быть больше тактиком, а он по своему статусу должен быть больше стратегом. И он совсем не обязан посвящать Вас в свои планы. Да, с точки зрения разработки небольшого приложения для одного заказчика, с пригоршней справочников Ваша схема академична и абсолютно верна. Нормализация, внешние ключи и т.д. И никто Вас не упрекнёт, что Вы плохо спроектировали БД. А теперь представьте, что Ваш начальник на подкорке держит планы отработать приложение в локалке, а затем уйти в WEB, на большие нагрузки? Тут уже другой коленкор. И начальник со своим нарушением нормализации предстаёт правильным перцем. Что по мне - для больших справочников с большим количеством атрибутов использую классическую схему, для мелочёвки вида KEY-VALUE использую один древовидный справочник. Плюсы в том, что с этими справочниками не надо заморачиваться с правами, не болит голова с формами. При создании нового приложения параллельно с разработкой отдаёшь "рыбу" заказчику, что-бы кто-то из их специалистов создал и заполнил нужные им справочники. При желании автоматом из такого дерева можно нагенерировать таблиц в классике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:06 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНу вот не понимаю, какая польза в добавлении такого "нового справочника" как таковом. Как минимум, еще надо добавить поле в master-таблицу, где будет храниться новоявленный признак. Возьмём, например, предприятие. У него есть туева хуча классифицирующих атрибутов: ОКАТО, ОКПО, ОКДП и т.д. и т.п. И постоянно Большой Брат норовит ввести какую-нибудь новую хрень. Можно на каждый его чих курочить структуру БД и тем обеспечить себя работой на всю оставшуюся жизнь. Или связать таблицу предприятий с универсальным справочником классификаций связью M:N. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:06 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11 а затем уйти в WEB, на большие нагрузки? Тут уже другой коленкорИ какой коленкор? Чем смешивание сущностей поможет при больших нагрузках. Или вы не умеете управлять автомобилем - садитесь на танк, это будут уже не ваши проблемы. zeon11 И начальник со своим нарушением нормализации предстаёт правильным перцем.И причем здесь нарушение нормализации вообще. zeon11 Плюсы в том, что с этими справочниками не надо заморачиваться с правамиА зачем тогда вообще заморачиватся с правами - работай под рутом и никаких проблем. zeon11 При желании автоматом из такого дерева можно нагенерировать таблиц в классике. А почему их сразу не нагенерировать? Еще раз повторю - никто не утверждал, что правила нарушать нельзя. Но я утверждаю, что сначала надо делать все правильно, и только потом, отдавая себе отчет за последствия их нарушать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:23 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Можно на каждый его чих курочить структуру БД и тем обеспечить себя работой на всю оставшуюся жизнь.Что-то мне кажется что рассовывание кода по приложению, триггерам и т.п. больше похоже на обеспечить работой на всю оставшуюся жизнь, чем скучный FK. Можно еще базу в EAV хранить, чтобы уж совсем никто без программиста не разобрался. С точки зрения job security вы совершенно правы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Что-то мне кажется что рассовывание кода по приложению, триггерам и т.п. больше похоже на обеспечить работой на всю оставшуюся жизнь, чем скучный FK. Уж не знаю, что ты там себе нафантазировал, но код для работы с универсальными справочниками пишется ровно один раз. Дальше он просто работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Уж не знаю, что ты там себе нафантазировал, но код для работы с универсальными справочниками пишется ровно один разДа ну. И вызывается тоже один раз? Или вызов кода, кодом не является. И проверки, что введенное значение является корректным тоже сами делаются. Или в базу кроме твоего приложения никто писать не имеет права? И если я вдруг вынужден отключить эту проверку (испугался коленкора) что проще - отключить fk или просить программиста полазить по коду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:49 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257И проверки, что введенное значение является корректным тоже сами делаются. Или в базу кроме твоего приложения никто писать не имеет права? Ты не поверишь, но FK технически не даёт возможности ввести некорректное значение. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 21:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Ты не поверишь, но FK технически не даёт возможности ввести некорректное значениеА у ТС универсальный справочник, так что технически там может быть любое универсальное значение. И обнаружится это только когда строка отсечется джойном. Но ведь это же будут проблемы не программиста, а админа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257, Ни для кого не секрет, что выборка из плоской таблицы будет быстрее. Отсюда следует, что если Вы упёрлись в потолок , а вам нужна скорость - вы будете делать из двух таблиц одну, а значит произойдёт процесс денормализации. Начальник и предлагает денормализацию: автор А если вставлять не код, а как предлагает руководитель "значение",..... По поводу прав - у ТС справочник статусов заявок (открыта, закрыта, в процессе и т.п.) Какой смысл ограничивать кого-либо в правах на чтение на этот справочник? Пусть все читают, кому не лень - меньше проблем у ТС. Вот на изменение справочника - другое дело, только администратору приложения. авторЕще раз повторю - никто не утверждал, что правила нарушать нельзя. Но я утверждаю, что сначала надо делать все правильно, и только потом, отдавая себе отчет за последствия их нарушать. Золотые слова, я то-же, как и Вы, предпочитаю сначала всё сделать правильно, а потом нарушить правила. Только никто не запрещает "сделать всё правильно" ментально, а потом нарушить правила уже ручками. Так просто быстрее получается. По поводу простых справочников в одном месте (у меня в дереве) - их просто удобно видеть в одном месте, меньше ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Dimitry Sibiryakov Ты не поверишь, но FK технически не даёт возможности ввести некорректное значениеА у ТС универсальный справочник, так что технически там может быть любое универсальное значение. И обнаружится это только когда строка отсечется джойном. Но ведь это же будут проблемы не программиста, а админа. Такие справочники, как у ТС создаются один раз при внедрении программы. А потом в них никто ничего не пишет. Или пишет, но одну запись раз в пять лет, т.к. кто-то в Думе за что-то проголосовал. Эти справочники работают как поставщики контекста в таблицах и комбобоксах, и если всё сделано правильно, то в таблицу KEY из другого справочника никогда не попадёт, а значит и проблем с JOIN'ном никогда не будет. И у админа проблем не будет при смене обстоятельств - зайдёт раз в пять лет в справочник и добавит новое значение и ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:16 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11 Такие справочники, как у ТС создаются один раз при внедрении программы. А потом в них никто ничего не пишет. Или пишет, но одну запись раз в пять лет, т.к. кто-то в Думе за что-то проголосовалА раз так то почему бы не сделать все правильно? Нахрена выеживатся. Ну не вижу я выгоды для объединения. zeon11 Начальник и предлагает денормализациюИ какую нормальную форму нарушает создание универсального справочника. А значение это использование естественного ключа. Теплое совсем не обязательно мягкое. zeon11 Вот на изменение справочника - другое дело, только администратору приложения.Поскольку физическая таблица одна, то права на изменение всех виртуальных таблиц одновременно. "Все или ничего" или рулить из приложения. Кто там мечтал боялся работы на всю жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257у ТС универсальный справочник, так что технически там может быть любое универсальное значение. И обнаружится это только когда строка отсечется джойном. Во-первых, каким это джоином она отсечётся? Во-вторых, с чего ты решил, что "любое значение" это "неправильное значение"? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:45 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 22:56 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. Но на второй вопрос ответа, похоже, не будет... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 00:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov primary key (id, dict_typechar))И в каждой таблице держать поле с постоянным для всех значением dict_typechar alter table detail_table add constraint foreign key (dict_id, dict_typechar) references uni_dict И где ответ на главный вопрос - нахрена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 00:14 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> что можете сказать по данной ситуации Два повода назвать вашего руководителя долбо^бом. Первый - за использование значений, второй - за общий справочник. > что все таки является бэст практишь? Для датацентрического приложения - канонические правила проектирования. Для говноподелок говорить о практиках бессмысленно, это уникальные, но нах никому не нужные продукты. Если вы гарантируете, что доступ к вашей базе данных никем никогда ни при каких условиях не может осуществляться иначе, чем посредством вашего приложения, вы имеете право на эксперименты. Однако, как только вы дадите такую гарантию, немедленно появляется повод для увольнения в связи с профнепригодностью. Имея универсальный справочник, вы теряете естественную семантику, вы вынуждены реализовывать дополнительную структуру, чтобы её хранить, но при этом размазываете вашу метамодель по разным уровням. Причём, ничего не получая взамен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 02:37 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Идея "универсального" справочника просто обязана придти в голову каждого начинающего проектировщика. ... Правда по зрелому размышлению достоинств у данной структуры НЕТ ВООБЩЕ.+1 guest_20040621Имея универсальный справочник, вы теряете естественную семантику+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 06:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Два повода назвать вашего руководителя долбо^бом. Первый - за использование значений, второй - за общий справочник. ... Для датацентрического приложения - канонические правила проектирования. Для говноподелок говорить о практиках бессмысленно, это уникальные, но нах никому не нужные продукты. Какой говнопродукт сам разрабатываешь? guest_20040621Имея универсальный справочник, вы теряете естественную семантику, вы вынуждены реализовывать дополнительную структуру, чтобы её хранить, но при этом размазываете вашу метамодель по разным уровням. Причём, ничего не получая взамен. Особенно мне нравится - естетственная семантика. Так и вижу у себя (ща посчитаю) 2840 таблиц вида "ключ-наименование". Зато в резюме можно написать - "разрабатывал датацентрическое приложение, в базе - 15000 таблиц", да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 06:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Какой говнопродукт сам разрабатываешь? Дружище, обычно я стараюсь избегать контактов с быдлом, поскольку брезглив зело, но в данном случае сделаю исключение. Почему - дальше будет понятно. > 2840 таблиц Исчисляемые значения - это две таблицы (на самом деле больше, но в данном случае это не принципиально). Если предположить, что количество семантических характеристик приблизительно соответствует количеству основных сущностей (тупо: для каждой сущности существует категоризация), получаем в качестве эквивалента структуры данных текстовое описание, содержащее как минимум 2800 подлежащих. Причём, по умолчанию каждое из них имеет собственный жизненный цикл. Я бы навскидку оценил трудоёмкость этой задачи в десять человеко-лет, откуда следуют и предположения о возможном назначении базы данных, и требования к квалификации разработчиков. Так что, дружище, рассказывайте о своих успехах папе Карло. Здесь не нужно ничего писать, быдлокодеры не интересны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 08:42 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257, guest_20040621 Давайте ещё раз. Начнём с перечислимых типов данных в яз. программирования. пример: Код: pascal 1. 2. 3. т.е. под 0 мы подразумеваем женщину, под 1 - мужчину. Можно обойтись без перечислимого типа? - да запросто, если у Вас хорошая память , Вы один разработчик в проекте и очень аккуратный. Т.о. перечислимый тип данных - помощник программиста, позволяющий ему "Вспомнить всё" и не дающий ему возможности (с помощью ошибок при компиляции) присвоить переменной значения, не имеющие смысла. Теперь перейдём к БД. В любом более-менее большом проекте есть аналоги перечислимым типам. Такие вот микросправочники из пригоршни записей. У ТС такой вот справочник и есть. Нужно для него отдельную таблицу или нет - решать разработчику. Но объединение логических таблиц в одной физической бывает подчас очень удобно и не надо отказываться от этого метода. Кстати, Уважаемые SERG1257, guest_20040621, Посмотрите в свои проекты, и ответьте на вопрос, только честно, как Вы храните пол человека, его имя, его отчество? Если Вы жёсткие апологеты правильных структур, то у Вас обязаны быть справочники: ПОЛ, ИМЯ, ОТЧЕСТВО где в справочнике пол две записи, в справочниках ИМЯ и ОТЧЕСТВО 1 - 2 тыс. записей. (кстати, у меня эти справочники есть, количество записей в них соответственно 2, 1484, 2017 при желании могу приложить скрины :-) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 08:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11 Начнём с перечислимых типов данных в яз. программирования.А в Киеве дядька. К чему это здесь? zeon11 Но объединение логических таблиц в одной физической бывает подчас очень удобноЕще раз - чем удобно? И здесь это оффтопик zeon11 то у Вас обязаны быть справочники: ПОЛ,Есть zeon11 ИМЯ, ОТЧЕСТВО Нет ибо не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 09:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Давайте ещё раз. Мыши плакали, кололись, но продолжали жрать кактус. Давайте. Скажите, вы под полом что подразумеваете? Репродуктивную роль? Запись в удостоверяющем личность документе? Самоидентификацию индивидуума? Вы понимаете, что структура данных для каждого из перечисленных вариантов будет различна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 09:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Скажите, вы под полом что подразумеваете? Репродуктивную роль? Запись в удостоверяющем личность документе? Самоидентификацию индивидуума? Вы понимаете, что структура данных для каждого из перечисленных вариантов будет различна?Ну так это ведь в разных сущностях может иметь раную смысловую нагрузку, но не исключено, что при этом можно обойтись одним справочником. В таком случае и структура не особо будет различна, просто куча таблиц с атрибутом sex_id или там gender_id, и значения этого атрибута при этом по-разному трактуются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Дружище, обычно я стараюсь избегать контактов с быдлом, поскольку брезглив зело, но в данном случае сделаю исключение. Почему - дальше будет понятно. Про говно не ты начал, небыдло? guest_20040621Исчисляемые значения - это две таблицы (на самом деле больше, но в данном случае это не принципиально). ... ахинею убрал ... Так что, дружище, рассказывайте о своих успехах папе Карло. Здесь не нужно ничего писать, быдлокодеры не интересны. Ты вообще понимаешь, что такое атомарные справочники? Похоже - нет. Совсем что ли не в себе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:20 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257zeon11 Начнём с перечислимых типов данных в яз. программирования.А в Киеве дядька. К чему это здесь? zeon11 Но объединение логических таблиц в одной физической бывает подчас очень удобноЕще раз - чем удобно? И здесь это оффтопик zeon11 то у Вас обязаны быть справочники: ПОЛ,Есть zeon11 ИМЯ, ОТЧЕСТВО Нет ибо не надо. Ну раз не надо - значит не надо. Пол есть - это самое главное. Еще пара аттрибутов - и система готова. Как у этого, гвеста2004 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Dimitry Sibiryakov Уж не знаю, что ты там себе нафантазировал, но код для работы с универсальными справочниками пишется ровно один разДа ну. И вызывается тоже один раз? Или вызов кода, кодом не является. И проверки, что введенное значение является корректным тоже сами делаются. Или в базу кроме твоего приложения никто писать не имеет права? И если я вдруг вынужден отключить эту проверку (испугался коленкора) что проще - отключить fk или просить программиста полазить по коду?Я тоже в упор не понимаю какие могут быть патчи? Была единожды запрограммирована кнопка "создать новый справочник". Маша шла-шла, нажала кнопку и нашла новый справочник без всяких патчей. Это работает и без "универсального справочника", когда много таблиц-справочников. Просто в первом случае за кнопкой стоит логика на уровне данных и права на инсерт, а во втором - на уровне метаданных и права на create... И какие проверки корректности введенного значения? Это как? В справочнике, который id и name?.. Я наверное не понимаю... Приведите пример ОЦ, которое нужно по Вашему мнению программировать после создания Машей справочника... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:26 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperЯ тоже в упор не понимаю какие могут быть патчи? И какие проверки корректности введенного значения? Ну не нравятся архитекторам foreign keys. Я, правда, другого не понимаю - как можно быть архитектором и не быть программистом. Не понимать, что любой foreign key блокирует мастер-запись при добавлении и изменении child-записи, что разбухание словаря данных тоже не есть гуд, что есть триггеры, наконец, в которых можно проверить введенное значение, что юзеры тоже иногда привыкают к значениям типа "активность - это 1", а не к Id=6521289. Ну да ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:35 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
AlexJmSgt.PepperЯ тоже в упор не понимаю какие могут быть патчи? И какие проверки корректности введенного значения? Ну не нравятся архитекторам foreign keys. прошу прощения, разумеется - читать "нравятся". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:36 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> не исключено, что при этом можно обойтись одним справочником Что может быть проще: возьмите обсуждаемый пример и приведите три корректных варианта его использования. > не особо будет различна Большинство проблем, как я уже говорил, связано с тем, что люди не понимают значения слов, которые используют. Причём, это характерно не только для проектирования, это встречается сплошь и рядом в обычной жизни. Не бывает "не особо различных". Не существует логической операции, позволяющей так определять соответствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Большинство проблем, как я уже говорил, связано с тем, что люди не понимают значения слов, которые используют. Причём, это характерно не только для проектирования, это встречается сплошь и рядом в обычной жизни. Сначала разберись, что такое атомарный справочник и объясни мне - почему задача заведения 8-10 аттрибутов у набора из 300-500 сущностей должна стать делом всей твоей разумной жизни ("10 человеко-лет"). А то жизни он учит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:48 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
AlexJmAlexJmпропущено... Ну не нравятся архитекторам foreign keys. прошу прощения, разумеется - читать "нравятся".Мне ключи нравятся. Я не ратовал за использование универсального справочника. Я не понял зачем патчи и программирование новых ОЦ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 10:58 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperAlexJmпропущено... прошу прощения, разумеется - читать "нравятся".Мне ключи нравятся. Я не ратовал за использование универсального справочника. Я не понял зачем патчи и программирование новых ОЦ... Тогда извините. Но про патчи я тоже не понял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 11:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperБыла единожды запрограммирована кнопка "создать новый справочник".Справочник, как правило, сам по себе не имеет смысла, пока он не участвует в общей модели и не связан с другими сущностями. Например, зачем создавать в системе справочник цвета волос, если он нигде не будет использоваться ? Значит, как минимум, после создания справочника нужно менять модель данных, добавляя в соответствующие сущности поля для хранения этих значений, где они будут иметь смысл. Т.е., простое добавление справочника бессмысленно, так как вместе с этим должна измениться модель данных, но упаси Бог, если этим начнут заниматься обычные пользователи, это прерогатива проектировщиков, которые отвечают за смысловую целостность и адекватность БД предметной области. Включая справочники, которые здесь именуют "атомарными", т.е., вида (ID, Value), по сути - классификаторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 11:03 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
AlexJmguest_20040621Большинство проблем, как я уже говорил, связано с тем, что люди не понимают значения слов, которые используют. Причём, это характерно не только для проектирования, это встречается сплошь и рядом в обычной жизни. Сначала разберись, что такое атомарный справочник и объясни мне - почему задача заведения 8-10 аттрибутов у набора из 300-500 сущностей должна стать делом всей твоей разумной жизни ("10 человеко-лет"). А то жизни он учит.Да какое, простите, дело жизни?... И тот и другой подход легко автоматизируется... Различия, на мой взгляд, косметические: в одном случае больше геморроя с грантами, в другом - с констрейнтами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 11:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperДа какое, простите, дело жизни?... Об этом лучше спросить у гвеста2004 - на его небыдловзгляд, должно занять 10 человеко-лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 11:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ChASgt.PepperБыла единожды запрограммирована кнопка "создать новый справочник".Справочник, как правило, сам по себе не имеет смысла, пока он не участвует в общей модели и не связан с другими сущностями. Например, зачем создавать в системе справочник цвета волос, если он нигде не будет использоваться ? Значит, как минимум, после создания справочника нужно менять модель данных, добавляя в соответствующие сущности поля для хранения этих значений, где они будут иметь смысл. Т.е., простое добавление справочника бессмысленно, так как вместе с этим должна измениться модель данных, но упаси Бог, если этим начнут заниматься обычные пользователи, это прерогатива проектировщиков, которые отвечают за смысловую целостность и адекватность БД предметной области. Включая справочники, которые здесь именуют "атомарными", т.е., вида (ID, Value), по сути - классификаторов.Я не являюсь адептом универсальных справочников, но и не согласен с Вашей категоричностью. Допустим тот случай, когда за классификатором нет никакой бизнес-логики типа: если мужчина, то расчет по одному алгоритму, если женщина - по другому. Скажем, такая классификация будет использоваться исключительно в целях фильтрации набора данных на клиенте. По-моему, возможное допущение. Допустим, что каждую запись можно классифицировать по значительному кол-ву классификаторов, которые часто возникают и исчезают. По мне так тоже вполне жизненная ситуация. Давайте ограничим возможность классифицировать строку по переменному набору справочников, но так, чтобы было не более одной классификации по одному справочнику. Сможем ограничить раз и навсегда? Думаю - сумеем. Далее формируется общий суперсправочник. В случае, если каждый классификатор есть отдельная таблица - с использованием метаданных. Далее формируем n:n таблицу: строка_id, справочник_id, значение_id. Делаем кнопку "создать новый справочник". Маша кликает, создает справочник "цвет лака для ногтей", видит его без всяких патчей, классифицирует сотрудниц, фильтрует их на клиенте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 11:34 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Что может быть проще: возьмите обсуждаемый пример и приведите три корректных варианта его использования.И опять без внятной постановки задачи?.. А почему не семьдесят три варианта? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. guest_20040621> не особо будет различна Не бывает "не особо различных". Не существует логической операции, позволяющей так определять соответствие.Да не занудствуйте. Мы говорим на русском языке, в котором не каждое слово имеет аналог логической операции. Иначе мы должны будем общаться чисто на формулах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 12:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> А почему не семьдесят три варианта? Потому, что есть как минимум три очевидных варианта использования. Вам и трёх, как выяснилось, много. > create table gender > create table person А теперь расскажите мне, в каком паспорте вы видели пол "гермафродит"? К какому полу вы отнесёте гражданина/гражданку с записью X в графе "пол" паспорта, выданного, например, в Австралии? Как вы проверите корректность зарегистрированного брака между людьми одного пола? Как вы намерены фильтровать допустимые значения для разных государств? В сад, дружище. Не е^ите мне мозг. > fio varchar(255) not null За это уже можно увольнять. > не каждое слово имеет аналог логической операции Мы говорим о проектировании баз данных. В сад. Надоело. Или учитесь проектировать, или воздержитесь от идиотских вопросов и идиотских ответов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 12:43 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> А почему не семьдесят три варианта? Потому, что есть как минимум три очевидных варианта использования. Вам и трёх, как выяснилось, много.guest_20040621 привык поручать другим решение задач не озвучивая условий! guest_20040621> create table gender > create table person А теперь расскажите мне, в каком паспорте вы видели пол "гермафродит"? К какому полу вы отнесёте гражданина/гражданку с записью X в графе "пол" паспорта, выданного, например, в Австралии? Как вы проверите корректность зарегистрированного брака между людьми одного пола? Как вы намерены фильтровать допустимые значения для разных государств?цитатаНу так это ведь в разных сущностях может иметь раную смысловую нагрузку, но не исключено , что при этом можно обойтись одним справочником.О чудо-юдо! В школе № 118 запрещено нанимать гермафродитов на работу, а между однополыми учениками данной школы браки запрещены законом. Я утверждал только то, что хватает случаев, когда Ваши умопомрачительные допущения с атрибутом "пол" нахрен никому не нужны. Впрочем, что говорить человеку, который привык фиксировать вообще все факты из жизни не обращая внимания на поставленную задачу... guest_20040621воздержитесь от идиотских вопросов и идиотских ответов.Хотите сказать, что эта ниша занята Вами?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 13:14 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621 > fio varchar(255) not null За это уже можно увольнять. Что за вьюношеский максимализм?! Пабло Диего Хозе Франциско де Паула Хуан Непомукено Криспин Криспиано де ла Сантисима Тринидад Руиз и Пикассо (Полное имя одного малоизвестного, но очень дорогого художника.) Напу-Амо-Хала-Она-Она-Анека-Вехи-Вехи-Она-Хивеа-Нена-Вава-Кехо-Онка-Кахе-Хеа-Леке-Еа-Она-Ней-Нана-Ниа-Кеко-Оа-Ога-Ван-Ика-Ванао (ученица младших классов на Гавайях) Так что ещё не известно, кого при случае уволили-бы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 14:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Что за вьюношеский максимализм?! Никакого максимализма (за "юношеского" спасибо, конечно, но - увы). Есть очевидные вещи, которые никто в здравом уме делать не будет. > Пабло Диего Хозе [] Отличные примеры с важными нюансами. Ваш вариант реализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 14:42 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Пабло Диего Хозе [] Отличные примеры с важными нюансами. Ваш вариант реализации? - Вы хочете песен?! Их есть у меня. (с) Как я уже писал выше, многие примитивные справочники у меня в дереве. Дерево ~ такое: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. как видно, значения хранятся в поле NAME VARCHAR(1000) и на моей системе приход на приём к врачу такого вот Пабло никак не скажется. Проглотит как устрицу на обед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 15:50 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> многие примитивные справочники у меня в дереве Рад и за вас, и за ваши справочники. Насколько я понял, вы имя целиком намерены записать в одну строку. Не вариант. Ещё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 16:00 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> многие примитивные справочники у меня в дереве Рад и за вас, и за ваши справочники. Насколько я понял, вы имя целиком намерены записать в одну строку. Не вариант. Ещё? Если одна строчка Вас не устраивает, тогда остаётся записать имя в одну колонку! В общем не томите, сдаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 16:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> остаётся записать имя в одну колонку Логично. Но это ещё не всё. Имена разделяются пробелами или дефисом. Имя может включать в себя стандартные префиксы (и суффиксы, вообще говоря). Краткое имя представляет собой подмножество имен полного имени. Заметьте: я ещё даже не начал различать псевдонимы, условную и явную нумерацию, перевод имен и пр. плюшки типа имён, зависящих от возраста, а ваши справочники уже нах никому не нужны. Упс, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 16:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> остаётся записать имя в одну колонку Логично. Но это ещё не всё. Имена разделяются пробелами или дефисом. Имя может включать в себя стандартные префиксы (и суффиксы, вообще говоря). Краткое имя представляет собой подмножество имен полного имени. Заметьте: я ещё даже не начал различать псевдонимы, условную и явную нумерацию, перевод имен и пр. плюшки типа имён, зависящих от возраста, а ваши справочники уже нах никому не нужны. Упс, да? Упс, упс. Я привёл скрипт таблицы, ниже привожу скрин справочника из приложения, т.е. у меня есть работающая система которая перемолотит всех Пабло и Педро и не икнет, и даже никто не узнает, что она их перемолотила, никаких exception и прочих неожиданностей. А если-бы я лез в семантический анализ имён людей, которые ко мне возможно никогда и не придут, то я сейчас сидел-бы в дурке и пускал радужные слюни в предвкушении овсяной каши на ужин. Так что будьте добры выложите на бочку Вашу систему хранения имён и отчеств из вашей-же работающей БД, которая-бы не улетела в цифровой ад при приходе Пабло Пикассо. Если предъявить нечего, то то, что Вы написали выше просто БЛА-БЛА-БЛА Кстати, на скрине есть справочник ТС, не поленился, завёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 17:16 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> ниже привожу скрин справочника из приложения Полагаете, если структура данных ошибочна, то скриншот может быть правильным? Странный вы человек. Видите ли, если краткое имя состоит не из первых имен последовательности полного имени, оператор вашей софтинки хрен когда найдет его в базе данных. > Вашу систему хранения имён и отчеств из вашей-же работающей БД ddl не пишу очень давно, специально для вас начинать не готов. Если у вас есть что-то кроме ddl, dml и er-модели, вряд ли проектирование - ваша основная задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 17:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621ddl не пишу очень давно, специально для вас начинать не готов. Я не просил предъявить что-то свежее. Предъявите из раннего. Вы-же хоть что-то писали? Наверняка там были имена, отчества, фамилии. Трудно придумать систему, где отсутствовали-бы люди-человеки. Хоть список пользователей, но должен быть. Так что жду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 18:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Давайте ближе к теме: вопрос к начальникам транспортного цеха. Какие есть практические преимущества сгоняния нескольких сущностей в одной таблице по сравнению с классическим подходом. анек в тему http://www.anekdot.ru/id/-1031000857/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 18:52 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Давайте ближе к теме: вопрос к начальникам транспортного цеха. Какие есть практические преимущества сгоняния нескольких сущностей в одной таблице по сравнению с классическим подходом. анек в тему http://www.anekdot.ru/id/-1031000857/ Мне просто удобно. Задолбало иметь десятки таблиц с 2-5 записями в каждой. Задолбало придумывать им имена. Если что-то по мелочи в справочнике нужно подправить, будешь минут десять только вспоминать, где что хранится, а потом будешь столько-же искать эту чёртову таблицу. Здесь же поиск искомого значения в один клик. Поэтому по возможности такие таблицы постепенно перегоняю под один знаменатель. На производительности и надёжности приложений это никак не сказывается, а вот кучу времени экономит. Это и есть практическое преимущество для меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 19:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11 Задолбало иметь десятки таблиц с 2-5 записями в каждой. Чем именно это напрягает? zeon11 Задолбало придумывать им имена.А логические имена придумывать типа не надо. zeon11 а потом будешь столько-же искать эту чёртову таблицуПользуйтесь словарем БД zeon11 Здесь же поиск искомого значения в один клик.Создайте вьюху с union all чтобы искать в один клик Не убедил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 20:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11 Мне просто удобноСамое главное - представте себя на месте того парня, который будет поддерживать вашу нетленку. Если вы по 10 минут ищете, то ему надо сколько, чтобы убедится то правится именно то, именно там ибо вглубь вашего хода ему хода нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 20:27 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Предъявите из раннего Несколько странный формат просьбы, не находите? Вы предложили вариант решения. Я рассказал вам, почему это плохое решение и привел перечень сущностей, которые целесообразно добавить для того, чтобы решение было приемлемым. Вы в состоянии представить отдельную таблицу name? surname? В состоянии представить name как prefix + delimeter + name + delimeter + suffix? То же для surname? В состоянии построить complex_name? complex_surname? Сделайте, это просто. Я могу показать вам ваши ошибки, но я не буду делать за вас вашу работу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 20:34 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
По поводу name (в свете универсального справочника) Слить все в одну сущность элементарно хоть через запятую, хоть фиксированной ширины хоть по формату. Обратное преобразование задача гораздо более нетривиальная. короче divide et empera. Со стороны дискуссия напоминает такую ситуацию Кинуть бумажку в урну требует ровно столько же усилий как мимо урны (хотя наклонится и убрать существенно труднее чем сделать сразу правильно). И аргументы кидать мимо приводятся типа таких от одной бумажки мир не перевернется и кину мимо и что мне за это ничего не будет я тут серъезными делами занимаюсь а вы со своими бумажками лезете ворчащая бабушка - дура старая, из ума выжившая. И возразить нечего, однако ни одного аргумента в пользу замусоривания нет и быть не может ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 22:14 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Предъявите из раннего Несколько странный формат просьбы, не находите? Вы предложили вариант решения. Я рассказал вам, почему это плохое решение и привел перечень сущностей, которые целесообразно добавить для того, чтобы решение было приемлемым. Вы в состоянии представить отдельную таблицу name? surname? В состоянии представить name как prefix + delimeter + name + delimeter + suffix? То же для surname? В состоянии построить complex_name? complex_surname? Сделайте, это просто. Я могу показать вам ваши ошибки, но я не буду делать за вас вашу работу. Упс! Ещё один теоретик! Неужели Вы думаете, что кто-то будет в здравом уме парсить имена разных Педро? Думаю, даже в латинской Америке до этого никто не додумался. И я тоже не собираюсь делать эту дурацкую во всех смыслах работу. И что-это за ошибку Вы выискали?: Ах, негодяй, посмел хранить имя Дона Педро нераспарсенным, в одну строчку!? Очнитесь! Мы говорим об ПРОСТЫХ справочниках вида КЛЮЧ-ЗНАЧЕНИЕ, а Вы предлагаете замутить диссертацию о семантике имён латинос. Всё-таки, приведите пример того, как Вы храните Ф.И.О. ? Только и всего! я не прошу делать Вас за кого-то работу. Просто пару строчек Вашего старого кода! Не увиливайте, Вы-же это делали, и делали без всяких суффиксов, префиксов и делиметеров. Я даже уверен, что никаких справочников имён и отчеств у Вас небыло. В лучшем случае три строковых колонки с названиями типа "FAMILIYA", "IMJA", "OTCHESTVO", а то и одна колонка "FIO", за которую Вы тут собирались увольнять уважаемого человека. В общем, кроме обезличенного ника, необоснованного апломба и пустого БЛА-БЛА-БЛА в активе у Вас ничего, к сожалению нет. Мне жаль потраченного времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2014, 22:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Ещё один теоретик! ;) Дружище, в вашем представлении практик - это тот, кто делает скриншоты? Нет никаких проблем написать десять таблиц. Нет в этом никакой интриги, это вполне заурядная структура. Не интересно. > кто-то будет в здравом уме парсить имена разных Педро Разумеется. Кстати, и национальных особенностей имён достаточно, экзотика не обязательна. > даже в латинской Америке до этого никто не додумался И? Знаете, десять лет назад на этом форуме основное время приходилось тратить на аргументы в пользу суррогатных ключей. Простая, казалось бы, задача с очевидным решением, правда? Так и с именами. Через некоторое время вам это решение тоже покажется простым и очевидным. > Вы предлагаете замутить диссертацию о семантике имён латинос В том-то и дело, что нет. Это действительно простое очевидное решение. Если вы несколько отвлечётесь от обслуживания вашего приложения и уделите некоторое время проектированию, то легко в этом убедитесь. > уверен, что никаких справочников имён и отчеств у Вас небыло Ваша уверенность... как бы это помягче сформулировать... в общем, не важно, в чём вы уверены. Важно, чем ограничен ваш уровень решений. Увы, но - плинтус. > кроме обезличенного ника Дружище, боюсь, мне сложно объяснить вам, насколько вы предсказуемы и стереотипны. Если вы действительно хотите заниматься проектированием, то это первое, с чем вам следует бороться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 05:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11Задолбало придумывать им имена. Если что-то по мелочи в справочнике нужно подправить, будешь минут десять только вспоминать, где что хранится, а потом будешь столько-же искать эту чёртову таблицу.Если система большая, выработайте четкую, формальную, однозначную систему именования таблиц и полей. Поиск среди объектов, имена которых подчиняются строгим правилам легко вести автоматически. Если необходимо, дополните (обогатите) словарь БД своей информацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 10:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperЯ не являюсь адептом универсальных справочников, но и не согласен с Вашей категоричностью.Никаких обвинений, но мне кажется очевидным, что БД - это не набор произвольных табличек, которые добавляет любой пользователь по своему усмотрению, а система взаимосвязанных сущностей, представляющая некоторую модель предметной области(ПО), которую строит проектировщик.Sgt.PepperДопустим тот случай, когда за классификатором нет никакой бизнес-логики типа: если мужчина, то расчет по одному алгоритму, если женщина - по другому. Скажем, такая классификация будет использоваться исключительно в целях фильтрации набора данных на клиенте. По-моему, возможное допущение.Одним из необходимых признаков "правильно" спроектированной БД является независимость её от приложений, которые пользуются её данными. Т.е., надо отделить мух от котлет, в данном случае, хранение(состояние) данных от их интерпретации. Если вы с этим не согласны, то можно пропустить дальнейший текст абзаца. Вернёмся к вашему примеру. Если в модели данных классификатор пола никак не связан с другими сущностями, в частности, с персональными данными, то алгоритм никак не поймёт, что тут надо считать так, а здесь эдак. Пока не будет установлена связь, например, между персональными данными и полом, но тогда классификатор пола уже является частью модели данных. Есть ещё момент, о котором стоит упомянуть, IMHO. В реальной физической БД вполне могут появляться объекты, которые не имеют отношения к модели данных ПО. Хуже того, в ней могут "мирно" сосуществовать несколько разных моделей, что чревато самыми неожиданными проблемами. И это не считая хранения в той же БД данных клиентов(программ), что обычно преступлением не считается, особенно когда есть уверенность, что кроме "нашего" клиента никто с БД не общается. Но, IMHO, надо четко их разделять и не считать, в частности, данные клиента частью модели данных ПО. Кроме того, современные РСУБД позволяют программировать любую логику с помощью внутреннего языка, как правило, расширением стандарного SQL. Поэтому нередко в БД помимо клиентских данных появляются клиентозависимые алгоритмические объекты, что мне, в общем случае, кажется не совсем правильным, хотя и бывает очень удобным. Мы просто игнорируем тот факт, что эти алгоритмы относятся к интерпретации данных, а не к самим данным и, вообще говоря, не являются частью модели. Не исключаю, что, возможно, вам такой взгляд тоже может показаться слишком радикальным, хотя он практически не отличается от стандартной парадигмы MVC.Sgt.PepperДопустим, что каждую запись можно классифицировать по значительному кол-ву классификаторов, которые часто возникают и исчезают. По мне так тоже вполне жизненная ситуация. Давайте ограничим возможность классифицировать строку по переменному набору справочников, но так, чтобы было не более одной классификации по одному справочнику. Сможем ограничить раз и навсегда? Думаю - сумеем. Далее формируется общий суперсправочник. В случае, если каждый классификатор есть отдельная таблица - с использованием метаданных. Далее формируем n:n таблицу: строка_id, справочник_id, значение_id. Делаем кнопку "создать новый справочник". Маша кликает, создает справочник "цвет лака для ногтей", видит его без всяких патчей, классифицирует сотрудниц, фильтрует их на клиенте...Модель данных может изменяться, по тем или иным причинам, с этим спорить вряд ли кто будет. И наличие механизма построения дополнительной семантической сети поверх существующих данных может оказаться полезным, в том числе для дальнейшей эволюции модели, я сам таким занимался. Но это делается простым теговым механизмом и, опять же, не является частью модели, а только интерпретации данных клиентом, до тех пор пока не станет перманентным элементом БД. Или не станет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 11:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительЕсли система большая, выработайте четкую, формальную, однозначную систему именования таблиц и полей. Поиск среди объектов, имена которых подчиняются строгим правилам легко вести автоматически. Если необходимо, дополните (обогатите) словарь БД своей информацией.+1 Хотя подобные правила не менее полезны для системы любого масштаба, так как понятие "большой системы" слишком размыто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 11:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Собственно говоря, полностью подписываюсь под Вашими словами. Вот это место я не очень понял: ChAВернёмся к вашему примеру. Если в модели данных классификатор пола никак не связан с другими сущностями, в частности, с персональными данными, то алгоритм никак не поймёт, что тут надо считать так, а здесь эдак. Я и сказал, что такие справочники, которые как Вы говорите "входят в модель данных", не годятся для формирования на лету. В остальном я перестал понимать предмет спора: ChA наличие механизма построения дополнительной семантической сети поверх существующих данных может оказаться полезным, в том числе для дальнейшей эволюции модели, я сам таким занимался. И я не призывал использовать их всегда и везде. Я не согласен с отрицанием возможности такого функционала в принципе и удивлялся некоторым особенностям его реализации типа патчей на БД и прогу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 12:15 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Давайте ближе к теме: вопрос к начальникам транспортного цеха. Какие есть практические преимущества сгоняния нескольких сущностей в одной таблице по сравнению с классическим подходом. 1. Разделение на сущности условно. При одном взгляде "Гендиректор" и "уборщица" это разные сущности, а при другом -одна, "должность в штатном расписании". При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник". 2. Практические преимущества от "сгоняния нескольких сущностей в одну таблицу" для "пола" и "национальности" такие же, как для "гендиректора" и "уборщицы" - удобство единообразной обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 12:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ChAкоторые добавляет любой пользователь по своему усмотрениюМаша, которую ввел в обсуждение SERG1257, и "лак для ногтей" - это, конечно, утрирование для красного словца. Даже такие классификаторы должен, наверное, создавать по необходимости специально обученный человек.. ) ChAОдним из необходимых признаков "правильно" спроектированной БД является независимость её от приложений, которые пользуются её данными.Мне не кажется, что здесь зависимость данных от приложения. Она возникает, когда логика обработки данных вынесена в приложение. В данном случае скорее "дополнительная семантическая сеть", которая м.б. жизнеспособна и вне контекста приложения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 12:35 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник" Продемонстрируйте, пожалуйста, взгляд, при котором пол и национальность - одна сущность. Дико интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 13:43 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperВот это место я не очень понял:ChAВернёмся к вашему примеру. Если в модели данных классификатор пола никак не связан с другими сущностями, в частности, с персональными данными, то алгоритм никак не поймёт, что тут надо считать так, а здесь эдак. Я и сказал, что такие справочники, которые как Вы говорите "входят в модель данных", не годятся для формирования на лету.Не хотелось возвращаться, ноги растут вот отсюда 15433255 . Если мы говорим о целостной и непротиворечивой модели данных(МД) ПО, то ни о какой кнопке "Создание нового справочника" говорить нельзя. В контексте топика это подразумевает создание новой сущности, не связанной ни с какими другими, т.е., по сути, не входящая в МД ПО. Для её включения необходимо связать с другими сущностями, что требует создания в этих сущностях соответствующего атрибута(ов), хранящего ссылку(и) на элемент(ы) нового классификатора. Иногда даже отдельной сущности для реализации связи между новым классификатором и сущностью, его использующей. Но это уже подразумевает не просто создание "справочника", это уже изменение модели данных, что доверять обычному пользователю кажется несколько эксцентричным, на мой взгляд. В противном случае, такой справочник не имеет никакого отношения к МД ПО. Проблема в том, что глобальный классификатор всего и вся превращает реляционную модель в "кашу", которая требует добавления сложной метамодели и написания промежуточного слоя для интерпретации и обработки данных. Таким образом МД ПО, которая нормально реализуема в терминах реляционной МД, зачем-то поднимается на уровень выше и там управляется неким "универсальным" программным кодом, которые выполняет, по сути, то же самое, что могда бы делать сама РСУБД с помощью своих стандартных встроенных механизмов. В частности, большинством видов проверки корректности данных и управления доступом. В результате, ничто не мешает ссылочному атрибуту присвоить в качестве значения идентификатор любого из справочников, входящий в "глобальный" классификатор, кроме некоего "универсального" кода, при условии, если все клиенты будут им пользоваться, что не факт, не считая ошибок реализации такового. А уж реализации управления доступом и вовсе становится танцами на льду в роликовых коньках. Причём это вовсе не исключает, что такого категорически не надо делать, просто, на мой взгляд, этим слишком часто злоупотребляют. Всем хочется делать свои конструкторы Вселенной и лень разбираться в ПО.Sgt.PepperChAналичие механизма построения дополнительной семантической сети поверх существующих данных может оказаться полезным, в том числе для дальнейшей эволюции модели, я сам таким занимался. И я не призывал использовать их всегда и везде. Я не согласен с отрицанием возможности такого функционала в принципе и удивлялся некоторым особенностям его реализации типа патчей на БД и прогу...Отрицается, если правильно понял, не функционал, как таковой, а принадлежность его МД ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 13:46 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ChA В контексте топика это подразумевает создание новой сущности, не связанной ни с какими другими, т.е., по сути, не входящая в МД ПО. Для её включения необходимо связать с другими сущностями, что требует создания в этих сущностях соответствующего атрибута(ов), хранящего ссылку(и) на элемент(ы) нового классификатора. Иногда даже отдельной сущности для реализации связи между новым классификатором и сущностью, его использующей. Но это уже подразумевает не просто создание "справочника", это уже изменение модели данных, что доверять обычному пользователю кажется несколько эксцентричным, на мой взгляд. Откуда такое недоверие? ChAПроблема в том, что глобальный классификатор всего и вся превращает реляционную модель в "кашу", которая требует добавления сложной метамодели и написания промежуточного слоя для интерпретации и обработки данных. не данных, а модели ChA Таким образом МД ПО, которая нормально реализуема в терминах реляционной МД, зачем-то поднимается на уровень выше и там управляется неким "универсальным" программным кодом, которые выполняет, по сути, то же самое, что могда бы делать сама РСУБД с помощью своих стандартных встроенных механизмов. если бы РСУБД могла бы интерпретировать метамодель и "разложить" по полочкам в своих терминах и генерировать методы доступа, то нужды в допслое не было бы. Встроенные механизмы РСУБД куцые, например есть механизм union, но нет механизма шаблона для union, все везде на уровне экземпляров (это бы избавила ТС от мегаклассификатора) ChAВ частности, большинством видов проверки корректности данных и управления доступом. Корректность ссылок (и то не полностью) и кортежа (и то обрубок на уровне одного кортежа - ну, в МССКЛ) ChAВ результате, ничто не мешает ссылочному атрибуту присвоить в качестве значения идентификатор любого из справочников, входящий в "глобальный" классификатор, кроме некоего "универсального" кода, при условии, если все клиенты будут им пользоваться, что не факт, не считая ошибок реализации такового. не любого а нужного если ссылка типизирована и эту типизацию не обойдешь ChA А уж реализации управления доступом и вовсе становится танцами на льду в роликовых коньках. это очень просто реализуется, намного проще чем в лоб ChAОтрицается, если правильно понял, не функционал, как таковой, а принадлежность его МД ПО. у ПО нет МД обычно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 14:22 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник" Продемонстрируйте, пожалуйста, взгляд, при котором пол и национальность - одна сущность. Дико интересно. guest_20040621Мои ответы для вас будут стоить $800/академический час, минимальный контракт - пятидневная рабочая неделя. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 16:56 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин 1. Разделение на сущности условно. При одном взгляде "Гендиректор" и "уборщица" это разные сущности, а при другом -одна, "должность в штатном расписании". При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник".Вообще непонятно. Поясни что хотел сказать. Можно с примерами Кот Матроскин 2. Практические преимущества от "сгоняния нескольких сущностей в одну таблицу" для "пола" и "национальности" такие же, как для "гендиректора" и "уборщицы" - удобство единообразной обработки. А вот с этим все понятно. Имеется форма(поиск/редактирование) которая вызывается несколько раз с разными параметрами, красота. Но, та же форма может вызываться (я не в жисть не поверю что вы не умеете это делать) против разных табличек (с одинаковыми именами), ну или на крайняк скопипастите в другую форму. И едиственная причина по которой вы так не делаете, это то, что вы не придавали этому значения, а сейчас спорите только из чувства противоречия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 18:39 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257А вот с этим все понятно. Имеется форма(поиск/редактирование) которая вызывается несколько раз с разными параметрами, красота. Но, та же форма может вызываться (я не в жисть не поверю что вы не умеете это делать) против разных табличек (с одинаковыми именами), ну или на крайняк скопипастите в другую форму. И едиственная причина по которой вы так не делаете, это то, что вы не придавали этому значения, а сейчас спорите только из чувства противоречия. Ничего, что я отвечу? Единственная причина, по которой он так делает - то, что он это реально разрабатывает. И то, что кол-во этих атомарных сущностей может исчисляться тысячами. Не подскажете, сколько там в среднем строк получится триггер instead of на представление с union all? Или Вы сторонник динамического sql на клиентской машине? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 19:04 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
AlexJm Единственная причина, по которой он так делает - то, что он это реально разрабатывает.А я это реально поддерживаю. И очень хочу чтобы инфа хранилась в словаре БД, а не в голове у разработчика. AlexJm И то, что кол-во этих атомарных сущностей может исчисляться тысячами. Таки тысячам, ага. И все тысячи имеют одинаковый набор полей и одинаковый набор прав. А может урежем осетра до десятков. Только честно перед самим собой. AlexJm Не подскажете, сколько там в среднем строк получится триггер instead of на представление с union all?А это еще зачем. Я утверждал что если есть необходимость слить данные, то вьюха это выход. Сливать легко, делить трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 19:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник" Продемонстрируйте, пожалуйста, взгляд, при котором пол и национальность - одна сущность. Дико интересно. Я же описал его - это примеры сущности "справочник". Бывает справочник полов, бывает - справочник национальностей, но и то и другое- справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 23:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Кот Матроскин 1. Разделение на сущности условно. При одном взгляде "Гендиректор" и "уборщица" это разные сущности, а при другом -одна, "должность в штатном расписании". При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник".Вообще непонятно. Поясни что хотел сказать. Можно с примерами Я специально упомянул примеры в своей фразе - даже не знаю куда тут подробнее. Есть с точки зрения системы сущность "справочник", есть - "элемент справочника". Что тут непонятного? SERG1257Кот Матроскин 2. Практические преимущества от "сгоняния нескольких сущностей в одну таблицу" для "пола" и "национальности" такие же, как для "гендиректора" и "уборщицы" - удобство единообразной обработки. А вот с этим все понятно. Имеется форма(поиск/редактирование) которая вызывается несколько раз с разными параметрами, красота. Но, та же форма может вызываться (я не в жисть не поверю что вы не умеете это делать) против разных табличек (с одинаковыми именами), ну или на крайняк скопипастите в другую форму. И едиственная причина по которой вы так не делаете, это то, что вы не придавали этому значения, а сейчас спорите только из чувства противоречия. "разные таблички с одинаковыми именами" - это что-то макабрическое :) Я имел в виду не формы выбора, а именно ту самую кнопку "создать справочник". В режиме "одна таблица" она не требует выдачи прав drop/create для обычного пользователя - это хорошо. Не требует использования динамического SQL, что еще лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2014, 23:39 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин "разные таблички с одинаковыми именами" - это что-то макабрическое :)С одинаковыми именами полей. Кот Матроскин а именно ту самую кнопку "создать справочник". Зачем в приложении кнопка "создать справочник" если это не EAV. см 15433255 . Нет если у вас EAV, то претензия снимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 01:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Я же описал его Кот Матроскин, вы запускаете очередной виток переливания из пустого в порожнее. Меня расстраивает то, что все делятся исключительно собственным опытом и работающими примерами. С одной стороны, это понятно: хорошо знакомые приёмы, преимущества и недостатки. С другой - неужели каждый считает своё решение законченным шедевром? Ответьте [себе] на простые вопросы: какие задачи решает датацентическое приложение? В чём заключается роль стандартов? Почему вы можете предъявить формальные требования к технологической операции, но не можете сделать то же самое в отношении структуры данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 05:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Кот Матроскин 1. Разделение на сущности условно. При одном взгляде "Гендиректор" и "уборщица" это разные сущности, а при другом -одна, "должность в штатном расписании". При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник".Вообще непонятно. Поясни что хотел сказать. Можно с примерами Ну, может быть, он хотел сказать, что в одной ПО, "Национальность" - сущность, а в другой атрибут? Например, в БД про народы мира "Национальность" имеет атрибуты типа: "Впервые упоминается", "Основное место проживания" и т.д. А в другой БД про тюрьмы народов мира просто свойство заключенного. Но просто выразил это в зашифрованном таком виде - "одна сущность" = "разные свойства одной сущности"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 08:35 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Нет если у вас EAV, то претензия снимается. Об том и речь: конструктор для конечного пользователя - сущности в EAV, их классификация - одна таблица для всех классификаторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 10:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинguest_20040621> При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник" Продемонстрируйте, пожалуйста, взгляд, при котором пол и национальность - одна сущность. Дико интересно. Я же описал его - это примеры сущности "справочник". Бывает справочник полов, бывает - справочник национальностей, но и то и другое- справочник. вот и прекрасно. не сущность "справочник" (её нет в предметной области ) а мета-сущность (она, эта сущность, из области не модели ПО, она в словаре описания самой модели) поэтому заводим (мета)справочник "справочники", с именами таблиц, полей, свойствами, настройками (обобщённого) интерфейса и всем, что нам привидится годным к хранению - и вперёд. Можем даже создать генератор новых таблиц-справочников (в некоторых случаях (ddl в транзакциях допустим) - даже прямо в СУБД, в некоторых других(ddl внетранзакционен) - из клиентов). Но это если совсем спинку почесать захотелось. (хотя если мы сознательно продвигаем еав, как возможность изменить всё пользователем без участия кодера, - то, как знатный еавист виппрос пишет, - никуда мы от переноса логики в код не уйдём, вынуждены будем предоставлять юзеру возможность сделать из БД помойку по вкусу. прострелить не одну ногу, а обе и голову с руками). там и универсальная таблица не криминал, не то, что справочник. вот собсна и всё. я почему тут высказываюсь - работал я в системе с ленивым универсальным "справочником", несколько надоело (основные претензии - именно проблемность поддержки логической целостности и вытекающими из ЛЦ плюшками оптимизации запросов, которыми вы не имеет право пользоваться, пока не уверены в логической целостности). при переносе на другую субд новые (и некоторые старые) справочники вынес в самостийные, добавил метаописатель (ленивый) => получил универсальный интерфейс. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 10:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Я же описал его Кот Матроскин, вы запускаете очередной виток переливания из пустого в порожнее. Меня расстраивает то, что все делятся исключительно собственным опытом и работающими примерами. С одной стороны, это понятно: хорошо знакомые приёмы, преимущества и недостатки. С другой - неужели каждый считает своё решение законченным шедевром? Ответьте [себе] на простые вопросы: какие задачи решает датацентическое приложение? В чём заключается роль стандартов? Почему вы можете предъявить формальные требования к технологической операции, но не можете сделать то же самое в отношении структуры данных? guest_20040621, ну Вы же мне задали конкретный вопрос, я Вам на него отвечаю - вы называете это переливанием из пустого в порожнее. Зачем задавать тогда было? Я, кстати, описываю как раз не свою систему, а то, что сейчас сопровождаю. И я сразу же сказал - в общем случае этот подход скорее плох, чем хорош (потому что для 80% приложений нафиг не нужна кнопка "создать custom справочник"). Но если кнопка-таки необходима - то сливание этих справочников в единую таблицу это самый прямой способ ее сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 11:18 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> вы называете это переливанием из пустого в порожнее Приношу извинения, был неправ. Видимо, ответ несколько не соответствовал моим ожиданиям. Но это, конечно, мои проблемы, а не ваши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 11:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257 Нет если у вас EAV, то претензия снимается. Связь кастомных справочников с классифицируемыми сущностями делается через третью таблицу, т.е. по принципу EAV. Но основных недостатов EAV (разнобоя с типами данных и примениыми к данным операциями) удается избежать - все данные фактически булевые, и операции к ним применяются одни и те же, и даже статистика по индексам б.м. осмысленна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 11:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqпоэтому заводим (мета)справочник "справочники", Заводите, старина - разве ж Вам кто-то запрещает? Вы считаете необходимость выдавать пользователю права на drop/create и использование динамического SQL достоинством? Мне так не кажется. проблемность поддержки логической целостности Имхо проблемы логической целостности для справочников Вы несколько преувеличиваете. Вам кажется, что установка КАМАЗу классификации "легковой автомобиль" (то что не отловит никакая ссылочная целостность) - это все цветочки, а установление классификации "женский пол" - это ужас-ужас? Почему? Второе гораздо легче отловить, как минимум. Проблема не в универсальных справочниках, а в том что надо избегать писать в базу всякую чушь, независимо от того, отлавливается ли чушь ОЦ или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 11:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621, Вот Вы помянули про формальные требования к модели данных - хорошо, давайте посмотрим с этой стороны. Вы считаете, что эти формальные требования - никак не зависят от задачи, которую решает схема данных? Можно выделить универсальные ФТ? И единая таблица справочников им категорически противоречит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 11:42 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwq(хотя если мы сознательно продвигаем еав, как возможность изменить всё пользователем без участия кодера, - то, как знатный еавист виппрос пишет, - никуда мы от переноса логики в код не уйдём, вынуждены будем предоставлять юзеру возможность сделать из БД помойку по вкусу. прострелить не одну ногу, а обе и голову с руками). там и универсальная таблица не криминал, не то, что справочник. В ВИПРОС встроен механизм динамической классификации и ЕАВ используется только в виде пула деклассифицированых объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 12:15 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинqwwqпоэтому заводим (мета)справочник "справочники", Заводите, старина - разве ж Вам кто-то запрещает? Вы считаете необходимость выдавать пользователю права на drop/create и использование динамического SQL достоинством? Мне так не кажется. коллега, я считаю само заведение справочника (и любой иной сущности ) пользователем, в т.ч. в еав -- криминалом. т.ч. это было лир отступление к вопросу о том, как обеспечить криминальный функционал. (иногда таки мы собираемся его обеспечивать, т.к. планируем именно такое, несопровождаемое, бытие кода и бд). т.е. если мы хотим именно эту функциональность (заведение сущностей пользователем) то создание справочника пользователем как жестко заданной таблицы (кодом таки разработчика, ограничевающего пользователя во всем, и от имени разработчика (SECURITY DEFINER), а не пользователя. т.е. права даются не юзеру, а хранимке, или коду(в третьем слое) ) -- может быть меньшим злом, чем невозможность обвязать ссылки ФК-ем. *"может" - поскольку "будет ли" -- зависит от реализации (как и в случае самого еав). Ну и лок на системные таблицы тут не бага, имхо, а фича -- дополнительный ужастик, снижающий активность бездумного заводиста сущностей. как иначе бить ему по рукам? но, ещё раз фиксирую - это о гипотетическом случае "почти еава", а не нормально скомпонованной БД. Кот Матроскинпроблемность поддержки логической целостности Имхо проблемы логической целостности для справочников Вы несколько преувеличиваете. Вам кажется, что установка КАМАЗу классификации "легковой автомобиль" (то что не отловит никакая ссылочная целостность) - это все цветочки, а установление классификации "женский пол" - это ужас-ужас? Почему? Второе гораздо легче отловить, как минимум. Проблема не в универсальных справочниках, а в том что надо избегать писать в базу всякую чушь, независимо от того, отлавливается ли чушь ОЦ или нет. мне наплевать на камазы и легковушки. в случае ЛЦ я знаю , что SELECT DISTINCT fk FROM very_big_table; полностью покрывается множеством SELECT id FROM very_small_table; и могу это использовать в запросах к "очень большой таблице". в отсутствии фк , я могу рискнуть попользоваться этим неявным знанием, но буду бит (возможно - во всех смыслах), если приложение его таки нарушит. случай со "спутанным фк" с одной - увеличивает "покрывающее множество" (т.е. минимум линейно в разы удорожит такого рода "хаки"), а не дай б-х, приведёт ещё и к необходимости учёта такой возможности в логике (а оно мне надо ?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 12:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosqwwq<> В ВИПРОС встроен механизм динамической классификации и ЕАВ используется только в виде пула деклассифицированых объектов респект и уважуха , особенно если на пальцах расшифруете шо це таке "механизм динамической классификации" т.е. никаких наездов в т.ч. на вашу любовь к eav если мы сознательно спускаемся в ад -- надо делать это обстоятельно насколько я понял -- вы там вполне освоились элементы же еав есть наверное у всех "в портфолио" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 12:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqViPRosпропущено... В ВИПРОС встроен механизм динамической классификации и ЕАВ используется только в виде пула деклассифицированых объектов респект и уважуха , особенно если на пальцах расшифруете шо це таке "механизм динамической классификации" т.е. никаких наездов в т.ч. на вашу любовь к eav если мы сознательно спускаемся в ад -- надо делать это обстоятельно насколько я понял -- вы там вполне освоились элементы же еав есть наверное у всех "в портфолио" этот механизм я тут несколько раз расшифровывал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 12:40 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosqwwqпропущено... респект и уважуха , особенно если на пальцах расшифруете шо це таке "механизм динамической классификации" т.е. никаких наездов в т.ч. на вашу любовь к eav если мы сознательно спускаемся в ад -- надо делать это обстоятельно насколько я понял -- вы там вполне освоились элементы же еав есть наверное у всех "в портфолио" этот механизм я тут несколько раз расшифровывал http://www.sql.ru/forum/actualsearch.aspx?search=???????? ???????????? ?????????????&sin=0&bid=36&a=&ma=0&dt=-1&s=1&so=1 как-то не вижу ничего похожего на "расшифровку". одни декларации. и да, я вас, оказывается, ещё и с архатом [Arhat109] в одну сущность складывал. каюсь. Теперь вот вы в моей БД динамически разделились (надолго ли) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 13:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> При одном взгляде "Пол" и "Национальность" - это разные сущности, а при другом одна, "справочник" Продемонстрируйте, пожалуйста, взгляд, при котором пол и национальность - одна сущность. Дико интересно. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 13:34 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> давайте посмотрим с этой стороны Давайте. Если честно, я не очень понимаю, для какой цели обобщённый справочник вообще может быть нужен. Всё, что может быть измерено стандартным образом, стандартным образом можно и хранить. Семантические шкалы - да, их можно рассматривать отдельно. И для них реализовывать специальный геморрой? Оно того стоит? > эти формальные требования - никак не зависят от задачи, которую решает схема данных? Зависят. Нужно подумать, как лучше сформулировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 14:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> давайте посмотрим с этой стороны Давайте. Если честно, я не очень понимаю, для какой цели обобщённый справочник вообще может быть нужен. Чтобы работать при помощи ИС с сущностью "Справочник". СоздатьСправочникДляТипаСущности УстановитьЗначениеСправочникаДляЭкземпляраСущности и т.п. Бизнес-кейс у нас есть Контрагенты. Вдруг(!) появляется характеристика контрагента "Иностранный агент". Очень желательно, чтобы пользователи могли завести справочник/классификатор "Является иностранным агентом", посадить девочку Машу проставить значения этого справочника для существующих контрагентов, и студента Петю, чтобы он добавил в отчет по контрагентам колонку "является ли иностранным агентом". При этом ни девочке Маше, ни даже студенту Пете нельзя давать права на drop/create, поскольку доверия к ним мало и если они базу убьют, то чинить все это нам. Созданием/удалением виртуальных справочников в единой физической таблице Маша с Петей не убьют базу при всем желании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 14:46 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Если честно, я не очень понимаю, для какой цели обобщённый справочник вообще может быть нужен. Всё, что может быть измерено стандартным образом, стандартным образом можно и хранить. Так вот для того чтобы хранить стандартным образом и вводится общий справочник и правила работы с ним определяются один раз. Сугубо для удобства и экономии времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 14:50 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Есть подозрение, что создание справочников в виде отдельных таблиц (ну и соответственно методов работы с ними) является немалой частью профессиональной деятельности у нескольких собеседников в данной ветке. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 14:53 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> эти формальные требования - никак не зависят от задачи, которую решает схема данных? Давайте разделим базы данных на две группы: промышленные и потребительские. Потребительские исключим из рассмотрения сразу и напрочь как маркетинговый булшит. Представим, что у нас есть туева хуча технологических процессов, описанных в соответствии со стандартами соответствующих предметных областей. Тогда зависимость от задачи будет выражаться в выборе уровня абстракции, достаточного для описания техпроцессов _за пределами предметной области_. Причём, выбор должен предполагать возможность перехода к любой другой предметной области. Корявенько получилось, но смысл, надеюсь, передал. Детально - предметная область и необходимые пересечения, контурно - всё остальное (если есть необходимость). > Можно выделить универсальные ФТ? А вот это я бы и хотел обсудить. Семейства стандартов + законодательные особенности в качестве отправной точки подойдут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Бизнес-кейс у нас есть Контрагенты. Вдруг(!) появляется характеристика контрагента "Иностранный агент". Очень желательно, чтобы пользователи могли завести справочник/классификатор "Является иностранным агентом", посадить девочку Машу проставить значения этого справочника для существующих контрагентов, и студента Петю, чтобы он добавил в отчет по контрагентам колонку "является ли иностранным агентом". При этом ни девочке Маше, ни даже студенту Пете нельзя давать права на drop/create, поскольку доверия к ним мало и если они базу убьют, то чинить все это нам. Созданием/удалением виртуальных справочников в единой физической таблице Маша с Петей не убьют базу при всем желании.для того, чтобы поюзать характеристику "Иносранный агент" сущности "контрагент" либо Петя, либо Маша, либо упал намоченная мариванна должна отредактировать сущность "контрагент" добавив эту характеристику в описание сущности. и её, марьванны, действия над сущностью ничем не отличимы от альтер-тейбл (едд/дроп колумн). как и кто "не убьёт" в этом случае логическую модель БД (описанную прошлой марь-ванной), вернее "БД" - это отдельный вопрос. А так ----- рисовал я как-то по младости дерево самоописывающегося еав (самоописываемый лес сущностей с сущностными же атрибутами из того же леса). не то на 2-х, не то аж на 4-х табличках. сел заполнять от печки, с понятия "объект" (верхний корень (один из) леса), и задумалсо. надоооолго. т.е. задача философски сложнее, чем нарисовать дубовую реляционную базку. А отредактировать её до невменяемости - дело 2-х секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenЕсть подозрение, что создание справочников в виде отдельных таблиц (ну и соответственно методов работы с ними) является немалой частью профессиональной деятельности у нескольких собеседников в данной ветке. :) Ну, вообще, не только в этой ветке юзают РМД, коея предполагает создание "отдельных" таблиц в принципе. Хотя, возможно, создание "отдельных" таблиц, которые называют тут "справочниками" может и являются "малой частью", по крайней мере, по времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqКот Матроскин Бизнес-кейс у нас есть Контрагенты. Вдруг(!) появляется характеристика контрагента "Иностранный агент". Очень желательно, чтобы пользователи могли завести справочник/классификатор "Является иностранным агентом", посадить девочку Машу проставить значения этого справочника для существующих контрагентов, и студента Петю, чтобы он добавил в отчет по контрагентам колонку "является ли иностранным агентом". При этом ни девочке Маше, ни даже студенту Пете нельзя давать права на drop/create, поскольку доверия к ним мало и если они базу убьют, то чинить все это нам. Созданием/удалением виртуальных справочников в единой физической таблице Маша с Петей не убьют базу при всем желании.для того, чтобы поюзать характеристику "Иносранный агент" сущности "контрагент" либо Петя, либо Маша, либо упал намоченная мариванна должна отредактировать сущность "контрагент" добавив эту характеристику в описание сущности. Нет, не должна. Ни одна сущность не пострадает Ни одно определение таблицы не изменится в процессе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> появляется характеристика контрагента "Иностранный агент" Она не может появиться в одиночестве. Это деление всех юридических лиц на два типа: иностранный агент и не иностранный агент. Причём, даже не всех юридических лиц. И на физическом уровне я бы реализовал это как отдельную таблицу со ссылкой на организации, потому как размер её будет небольшим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:09 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621И на физическом уровне я бы реализовал это как отдельную таблицу со ссылкой на организации, потому как размер её будет небольшим. задача состоит в том, чтобы обойтись силами Маши и Пети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:12 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenЕсть подозрение, что создание справочников в виде отдельных таблиц (ну и соответственно методов работы с ними) является немалой частью профессиональной деятельности у нескольких собеседников в данной ветке. :)ну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ? и тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:14 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Представим, что у нас есть туева хуча технологических процессов, описанных в соответствии со стандартами соответствующих предметных областей. Тогда зависимость от задачи будет выражаться в выборе уровня абстракции, достаточного для описания техпроцессов _за пределами предметной области_. Причём, выбор должен предполагать возможность перехода к любой другой предметной области. Корявенько получилось, но смысл, надеюсь, передал. Детально - предметная область и необходимые пересечения, контурно - всё остальное (если есть необходимость). В моей поделке очень четко сами собой разложись сегменты "метаданных" и "универсальных форм". 1. Действительно универсалные формы, кочующие из одной предметной области (проекта, разработки) в другую без изменения. 2. Типовые общеупотребительный формы (пример - календари, отчетные интервалы/периоды и т.п.) 3. Метаконфигураторы, сделанные для реализаци конкретной проектной хотелки не на жестко определенных таблицах и связях а на "мягких" еавеподобных и других похожих механизмах, допускающие настройку ран-тайм "продвинутыми пользователям". 4. Конеретные пользовательские формы, пригодные только в этой предметной области. (несмотря на их реализацию на метаданных "продвинутые пользователи" не допускаются до их изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:16 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинqwwqпропущено... для того, чтобы поюзать характеристику "Иносранный агент" сущности "контрагент" либо Петя, либо Маша, либо упал намоченная мариванна должна отредактировать сущность "контрагент" добавив эту характеристику в описание сущности. Нет, не должна. Ни одна сущность не пострадает Ни одно определение таблицы не изменится в процессе. вы не правы, ни одна сущность и таблица не изменится, но изменятся "сущности" и соответствующие им "таблицы" (описание в еав). из того что пострадает не БД а "БД" ничего не изменится -- мы сами модели (и их катастрофы) вынесли в другой слой. только и всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:18 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
[quot qwwq]Кот Матроскинпропущено... из того что пострадает не БД а "БД" ничего не изменится Спорить с точкой зрения "поскольку пользователи в любом случае изменяют данные в БД, то если дать все операторам права DBA, то ничего не изменится, просто катастрофа случится в другом слое" - мне не очень интересно, сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:23 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> задача состоит в том, чтобы обойтись силами Маши и Пети Хорошо. Задачу Маше и Пете вы будете должны сформулировать так: реализовать требования Федерального закона от 20.07.2012 N 121-ФЗ. Каких действий вы ожидаете от Пети и Маши? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
[quot Кот Матроскин]qwwqпропущено... Спорить с точкой зрения "поскольку пользователи в любом случае изменяют данные в БД, то если дать все операторам права DBA, то ничего не изменится, просто катастрофа случится в другом слое" - мне не очень интересно, сорри.вы очень выборочно вчитываете какие-то свои смыслы в аргументы оппонента. а именно - "дать права дба" и "дать права на выполнение определенной (разработчиком) процедуры (выполняемой от имени пользователя, но с правами ДБА)" - это существенно разные случаи, евпочя. при чём последняя альтернатива возникает в стороне от основного обсуждения - "нужно ли в классике (безо всякой необходимости что в 1, что во 2) портить структуру данных" ? и вас пробивает на отсылку к этому оффтопику всякий раз, когда вы не можете ответить по существу темы. забавно т.ч. спорить с вашей кочкой зрения, не зависимо от того, о чём вы в очередной раз её поимели, действительно не интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:35 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> 2. Типовые общеупотребительный формы (пример - календари, отчетные интервалы/периоды и т.п.) До какой степени общеупотребительные? Есть календарный/финансовый год/квартал? Есть возможность пользоваться разными календарями? > 4. Конеретные пользовательские формы, пригодные только в этой предметной области. Какими стандартами и как именно вы пользовались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:37 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> задача состоит в том, чтобы обойтись силами Маши и Пети Хорошо. Задачу Маше и Пете вы будете должны сформулировать так: реализовать требования Федерального закона от 20.07.2012 N 121-ФЗ. Каких действий вы ожидаете от Пети и Маши? Я не ставлю задачу Маше и Пете. Я обьясняю руководству Маши и Пети "Если Вы приобретаете нашу систему - Вы можете делать ряд настроек силами ваших Маши и Пети, а не заказывать доработку у нас за 100500 денег. При этом Маша и Петя не повредят безвозвратно вашу базу. К системе мы прилагаем в документации ряд скриншотов для Маши и описание API для Пети. Более того - вы можете не напрягаясь сменить Петю на Васю, и Васе не надо будет тратить полгода разбирательство в куче мусора, которй оставил Петя - все эти настройки делаются стандартизированным образом ". По этому пути идут практически все тиражируемые ИС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:43 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ?Мда, с юмором у некоторых, видать, проблемы :) Речь шла о абстрактном создании справочников и их наполнении :) qwwqи тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов.Эк зацепило то :) Какая-та прям неприязнь к "интерфейсщики" наблюдается. Я, кстати, не видел, чтобы структуру БД проектировали "интерфейсщики", вернее в таких проектах не участвовал. Удобство одного справочника ключ/значение состоит не только в том, что это удобно в интерфейсе (хотя это тоже немаловажно). Выработка правил облегчает миграцию и использование значений в тиражируемой системе. Называют поле, например ref_val_gender и сразу понятно, что нужно смотреть справочник с названием gender. Стандартизация? Да. Удобно? Да. Индексы опять же уже созданы на общий справочник, создавать не нужно. Мелочь, а приятно. Вот из таких мелочей и складывается работа разработчика. Зачастую интеграцию тоже удается упростить (но тут нужно смотреть детальнее исходя из требований). Модель данных, поддерживаемая, например в CASE средствах тоже становится компактней. Исчезают CREATE TABLE в скриптах обновлений (для тиражируемых систем это немаловажно). P.S. Такой рьяный спор - как-будто зарплату у кого-то отбирают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> По этому пути идут практически все тиражируемые ИС. Неожиданно хороший пример получился, кстати. В базу данных в результате попадёт всё, что угодно, кроме того, что нужно. С очень большой вероятностью. Напомнило недавние комментарии к пенсионной реформе. Типа у нас же налоги платит работодатель, а не граждане. Думаю, что это было целевым передёргиваением, но, если пользоваться вашим примером как аналогией, вполне можно допустить, что Маша с Петей никогда не слышали о статусе налогового агента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 15:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqInfernal V. RavenЕсть подозрение, что создание справочников в виде отдельных таблиц (ну и соответственно методов работы с ними) является немалой частью профессиональной деятельности у нескольких собеседников в данной ветке. :)ну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ? и тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов. DBA не способны обеспечить целостность без FK, но готовы любезно предоставить таблы о мордах. Универсальный справочник по сравнению с этим монстром - мелкие семечки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> По этому пути идут практически все тиражируемые ИС. Неожиданно хороший пример получился, кстати. Из жизни потому что :) guest_20040621В базу данных в результате попадёт всё, что угодно, кроме того, что нужно. С очень большой вероятностью. Напомнило недавние комментарии к пенсионной реформе. Типа у нас же налоги платит работодатель, а не граждане. Думаю, что это было целевым передёргиваением, но, если пользоваться вашим примером как аналогией, вполне можно допустить, что Маша с Петей никогда не слышали о статусе налогового агента. Что попадет в базу - зависит от того, насколько серьезно рукововдство подойдет к делу. Если оно, как обычно, решит сэкономить на Маше, на Пете и на постановщике задач для Маши и Пети - то да, результат вряд ли будет впечталяющим. Но дело создателей ИС - предоставить возможность . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Raven qwwqи тогда чистопородные интерфейсщики<> -- особо лестно упоминаемая нами часть половых девиантов.Эк зацепило то :) Какая-та прям неприязнь к "интерфейсщики" наблюдается. <>-- по девиантам возражений нет. это хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> 2. Типовые общеупотребительный формы (пример - календари, отчетные интервалы/периоды и т.п.) До какой степени общеупотребительные? Есть календарный/финансовый год/квартал? Есть возможность пользоваться разными календарями? > 4. Конеретные пользовательские формы, пригодные только в этой предметной области. Какими стандартами и как именно вы пользовались? Все оценки общеупотребительности - субъективные. При использовании в нескольких проектах считаю форму и ее данные "общеупотребительным". Календари - как у всех - праздники и выходные дни по годам (только для одной станы ). Периоды - кварталы, годы. "Конкретные" формы и их данные присущи только решению, в котором они разрабатывались. На стандарты сослаться не могу. Разделение на 4 типа исключительно субъективное. 4 Сам принцип разделение форм и (мета)данных на эти типы кажется верной идеей, о чем и был смысл поста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SeVa <> DBA не способны обеспечить целостность без FK, но готовы любезно предоставить таблы о мордах. Универсальный справочник по сравнению с этим монстром - мелкие семечки.пыц приведите, гражданин. где, кому и что "предоставляется" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:11 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Ravenqwwqну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ?Мда, с юмором у некоторых, видать, проблемы :) Речь шла о абстрактном создании справочников и их наполнении :) qwwqи тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов.Эк зацепило то :) Какая-та прям неприязнь к "интерфейсщики" наблюдается. Я, кстати, не видел, чтобы структуру БД проектировали "интерфейсщики", вернее в таких проектах не участвовал. Удобство одного справочника ключ/значение состоит не только в том, что это удобно в интерфейсе (хотя это тоже немаловажно). Выработка правил облегчает миграцию и использование значений в тиражируемой системе. Называют поле, например ref_val_gender и сразу понятно, что нужно смотреть справочник с названием gender. Стандартизация? Да. Удобно? Да. Индексы опять же уже созданы на общий справочник, создавать не нужно. Мелочь, а приятно. Вот из таких мелочей и складывается работа разработчика. Зачастую интеграцию тоже удается упростить (но тут нужно смотреть детальнее исходя из требований). Модель данных, поддерживаемая, например в CASE средствах тоже становится компактней. Исчезают CREATE TABLE в скриптах обновлений (для тиражируемых систем это немаловажно). P.S. Такой рьяный спор - как-будто зарплату у кого-то отбирают :) Добавлю еще пару копеек. Времена монолитных нетленок уходят. Нужна интеграция с внешними системами, а там где в одной объект, то в другой атрибут и одним union all не отделаешься. ЗЫ С точки зрения бизнес-объектов все ваши правильные подходы с отдельными таблицами под каждый чих - незначащий мусор, который только тормозит процесс и по большому счету ничего не дает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqInfernal V. RavenЕсть подозрение, что создание справочников в виде отдельных таблиц (ну и соответственно методов работы с ними) является немалой частью профессиональной деятельности у нескольких собеседников в данной ветке. :)ну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ? и тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов. qwwqSeVa <> DBA не способны обеспечить целостность без FK, но готовы любезно предоставить таблы о мордах. Универсальный справочник по сравнению с этим монстром - мелкие семечки.пыц приведите, гражданин. где, кому и что "предоставляется" Гражданин, это чей туфля? qwwqInfernal V. RavenЕсть подозрение, что создание справочников в виде отдельных таблиц (ну и соответственно методов работы с ними) является немалой частью профессиональной деятельности у нескольких собеседников в данной ветке. :)ну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ? и тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:25 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SeVaqwwqпропущено... ну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ? и тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов. qwwqпропущено... пыц приведите, гражданин. где, кому и что " предоставляется " Гражданин, это чей туфля? qwwqпропущено... ну да: примитивные агрегирующие выборки из больших таблиц, и их джойнов, в т.ч. и по разрезам, описываемым справочниками -- изрядная часть деятельности sql-кодера. это сюрпрайс ? и тогда чистопородные интерфейсщики, заложившие кривые паттерны проектирования БД из ложно понимаемого ими удобства рисования интреморд (которые мне лично не в падлу один раз закодить на основе таблы метаданных "о мордах", а не уродовать схему собственно данных) -- особо лестно упоминаемая нами часть половых девиантов.кис-кис заело ? ты не мудри, ты пальцем покажы, где нописано, что в таблу метаданных справочника о мордах ходок хоть кто-то , кроме меня (и интерфейса - на чтение). (за исключением быть может лир-отсуплений, о возможности реализации некоторых свойств еава черезх ддл-икзкекьютед ф--ии для спец-обученных усеров) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SeVa, ты б зокусывал, что ле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:34 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqSeVaпропущено... пропущено... Гражданин, это чей туфля? пропущено... кис-кис заело ? ты не мудри, ты пальцем покажы, где нописано, что в таблу метаданных справочника о мордах ходок хоть кто-то , кроме меня (и интерфейса - на чтение). (за исключением быть может лир-отсуплений, о возможности реализации некоторых свойств еава черезх ддл-икзкекьютед ф--ии для спец-обученных усеров) То,что к тебе ходок один хзкекьютет очень успокаивает. Интерфейсам в такой компании делать нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Классификация 1. Создаем подтипы (проекции свойств) 2. Придаем новые свойства ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 16:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, 1. любую фигню можно объединить с любой фигней 2. любую фигню можно разделить (вдоль и поперек) на любое количество фигни синтез и анализ обобщение и специализация наследование и полиморфизм инкапсуляция и аспектное расширение можете продолжить много еще пустых слов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 17:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Все оценки общеупотребительности - субъективные. Понятно. Спасибо. Найти удобные формальные критерии - и получится в первом приближении то, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 17:04 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
думаем глобально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 17:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, принявшим конструктивное участие в обсуждении. Несколько сумбурно получилось, но вполне информативно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 17:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
qwwqSeVaпропущено... пропущено... Гражданин, это чей туфля? пропущено... кис-кис заело ? ты не мудри, ты пальцем покажы, где нописано, что в таблу метаданных справочника о мордах ходок хоть кто-то , кроме меня (и интерфейса - на чтение). (за исключением быть может лир-отсуплений, о возможности реализации некоторых свойств еава черезх ддл-икзкекьютед ф--ии для спец-обученных усеров) Что это за табла метаданных о мордах, в которую ты ходок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 20:56 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosViPRos, 1. любую фигню можно объединить с любой фигней 2. любую фигню можно разделить (вдоль и поперек) на любое количество фигни синтез и анализ обобщение и специализация наследование и полиморфизм инкапсуляция и аспектное расширение можете продолжить много еще пустых слов картинки побачили, а как это в структурах данных выглядит ? 1. всё ложите в "универсальное хранилище" а-ля еав ? (и приравненные) 2. таки накатываете ддл (не руками, естественно), когда определяетесь со своим конструктором ? 3. что-то перпендикулярно и 1 и 2 ? короче, есть что показать окромя рекламного гламура и дискурса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
AlexJmпропущено... Что это за табла метаданных о мордах, в которую ты ходок? читайте подряд, гражданин. 15439093 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
нежные, вы любовь на скрипки ложкартинки побачили, а как это в структурах данных выглядит ? 1. всё ложите в "универсальное хранилище" а-ля еав ? (и приравненные) 2. таки накатываете ддл (не руками, естественно), когда определяетесь со своим конструктором ? 3. что-то перпендикулярно и 1 и 2 ? короче, есть что показать окромя рекламного гламура и дискурса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:34 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:40 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:42 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:46 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:49 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 21:53 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 22:07 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2014, 22:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosнежные, вы любовь на скрипки лож<> 1. всё ложите в "универсальное хранилище" а-ля еав ? (и приравненные) 2. таки накатываете ддл (не руками, естественно), когда определяетесь со своим конструктором ? 3. что-то перпендикулярно и 1 и 2 ? <> кортинко на картинке видим как фиксированные сущности, так и еав, с расщеплением значений св-в по типам. ну, раскладка необязательного по еав - не секрет даже 1С сподвиглось если на этом "динамический классификатор блаблабла" заканчивается -- то это грустная шутка что происходит, когда мы определились с закостенением некой части "фигни" ? забираете в монопольный, натравливаете ддл, и реорганизуете данные ? или так всё по еавам и валяется ? хотя бы not null для еав-поля сумеете сорганизовать ? так чтобы бетонно, есс-но ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 08:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЯ обьясняю руководству Маши и Пети "Если Вы приобретаете нашу систему - Вы можете делать ряд настроек силами ваших Маши и Пети, а не заказывать доработку у нас за 100500 денег. При этом Маша и Петя не повредят безвозвратно вашу базу. К системе мы прилагаем в документации ряд скриншотов для Маши и описание API для Пети. с одной стороны, если используется ЕАВ, то логично и справочники держать в одной структуре. Но если ЕАВ не является основой системы, то такой подход, имхо ничего не дает. Если уж так необходима возможность для пользователей дополнять модель данных (что врядли, в большинстве случаев не более чем маркетинговый ход), можно справочники и ссылочные поля создавать "физически", предоставляя пользователям соответствующий интерфейс. (какая, по большому счету разница, на каком уровне Маша с Петей испортятдополнят заложенную структуру данных, на уровне ЕАВ или на уровне DDL) Но при этом хотя бы сохранится целостность данных на уровне БД. Еще, по теме топика, любой "атомарный" справочник, по мере развития системы может стать совсем не атомарным. Что делать будете? Выводить справочник из атомарных? Или лить специфические поля в общую кучу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 09:06 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Мы поначалу тоже все "атомарные справочники" объединили в одну таблицу с типичной структурой (id, type, code, title, shorttitle, actual/use итп). Вроде как хорошо, "сэкономили" на количестве таблиц. Придумали даже такую штуку, чтобы FK работали правильно - id сделали не случайным (autoinc итп), а по принципу type * 1000 + code, т.е. 445002 как бы обозначало, что справочник номер 445, а код элемента справочника - 2. И чтобы а таблица не могла сослаться на "чужой" элемент прописывали помимо FK еще и check, вида material_id % 1000 = 445. Ну и полагали, что элементов справочника не должно превышать 1000 (честно говоря, не вижу смысла в справочниках, у которых элементов очень много). Но потом начали появляться следующие вещи - каждый "атомарный справочник" в процессе развития системы стремился стать самостоятельной сущностью, у него появлялся первый дополнительный атрибут (завели еще одно "универсальное" поле), потом второй, потом более хитрые ограничения внутри его множества значений итп. Потихоньку начали отдирать от большой таблицы по одному. В конце концов решили полностью отказаться от подхода. Это, кстати, имело и дополнительные преимущества в виде более понятной модели данных, и неуклюжие ER-диаграммы с кучей "случайных" связей к одной таблице стали выглядеть прозрачнее. Правда подход с диапазоном значений оставили - понравился :). Но как бы подход "куча справочников - одна таблица" пока со счетов не сбрасываю, вдруг есть такие задачи, где такой подход вполне может быть применим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 09:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
на литавру ложит грубыйViPRosпропущено... кортинко на картинке видим как фиксированные сущности, так и еав, с расщеплением значений св-в по типам. ну, раскладка необязательного по еав - не секрет даже 1С сподвиглось если на этом "динамический классификатор блаблабла" заканчивается -- то это грустная шутка что происходит, когда мы определились с закостенением некой части "фигни" ? забираете в монопольный, натравливаете ддл, и реорганизуете данные ? или так всё по еавам и валяется ? хотя бы not null для еав-поля сумеете сорганизовать ? так чтобы бетонно, есс-но я тебе показал все 3 твоих + автоматически/принудительную реорганизацию в ОБЕИХ направлениях зависимости от режима функционирования на читай, писал когда то вместо ТЗ, щоб на бабки выйти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 09:31 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Goffmanс одной стороны, если используется ЕАВ, то логично и справочники держать в одной структуре. Но если ЕАВ не является основой системы, то такой подход, имхо ничего не дает. Применительно к справочнику ключ/значение без разницы лежит ли EAV в основе. Тем более EAV может дополнять основною модель, а не лежать в основе. GoffmanЕще, по теме топика, любой "атомарный" справочник, по мере развития системы может стать совсем не атомарным. Что делать будете? Выводить справочник из атомарных? Или лить специфические поля в общую кучу?Конечно требуется выводить, поскольку он уже не будет вписываться в эту структуру. На моей памяти проблем с этим не возникало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 10:57 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenПрименительно к справочнику ключ/значение без разницы лежит ли EAV в основе. Тем более EAV может дополнять основною модель, а не лежать в основе. Я имел в виду, что подход к проектированию справочников должен быть таким же, что и при построении основной системы. Исключения разумеется могут быть, но обоснованные. Infernal V. RavenКонечно требуется выводить, поскольку он уже не будет вписываться в эту структуру. На моей памяти проблем с этим не возникало. Ну если не считать лишнюю работу по переделке структуры данных и приложений, то да - проблем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 11:26 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanЯ имел в виду, что подход к проектированию справочников должен быть таким же, что и при построении основной системы.Исключения разумеется могут быть, но обоснованные.Не должен. Нужно руководствоваться здравым смыслом и если он говорит о том что выгоднее сделать часть справочников в виде ключ/значение в одной таблице, а другие справочники в табличном виде - так делать и нужно. Тоже самое применительно к EAV. GoffmanV. RavenНу если не считать лишнюю работу по переделке структуры данных и приложений, то да - проблем нет.Делать один справочник ключ/значение выгоднее по времени. Если есть подозрение, что справочник должен быть расширен - нужно выводить в отдельную таблицу сразу. Методику оценки я приводил уже. В подавляющем большинстве случаев справочники "не переезжают" поэтому это оправдано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 12:39 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Raven Нужно руководствоваться здравым смыслом и если он говорит о том что выгоднее сделать часть справочников в виде ключ/значение в одной таблице, а другие справочники в табличном виде - так делать и нужно. Тоже самое применительно к EAV. Выгода как я понимаю заключается только в экономии времени. Ну да, такой подход позволяет с экономить на одном справочнике минут 10-15. С другой стороны мы имеем: * Отсутствие целостности данных на уровне БД. Этот пункт особенно обостряется, если с базой будет работать (даже в перспективе) несколько приложений * Потенциальная проблема расширения любого справочника, со всеми прелестями изменения схемы БД на работающей системе. * Отсутствие четкой и понятной схемы данных - имея только DDL, сложно разобраться какая таблица на какой справочник ссылается. По всем параметрам, "классический" подход к справочникам более качественный, с точки зрения дальнейшей работы с данными. Единственный "недостаток" - небольшие затраты на написание скрипта DDL.Но даже в этом случае, если кто-то штампует эти справочники пачками, этот процесс можно автоматизировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 14:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Goffman* Отсутствие целостности данных на уровне БД. Этот пункт особенно обостряется, если с базой будет работать (даже в перспективе) несколько приложенийЭто не так. Во-первых - контроль целостности напрямую зависит от методики работы с данными. Даже в "своих" приложениях помимо FK существуют дополнительные правила логической проверки вводимых значений. Во-вторых - коллеги здесь уже писали, что FK использовать в этой схеме можно, а некоторые говорили, что еще и нужно. Goffman* Потенциальная проблема расширения любого справочника, со всеми прелестями изменения схемы БД на работающей системе.Само собой нужно оценивать - это задача проектировщика и архитектора. Потенциально возможно все, но, надеюсь, Вы же не будете каждую систему из-за этого делать на EAV-модели? Тоже самое применительно к общему справочнику. Goffman* Отсутствие четкой и понятной схемы данных - имея только DDL, сложно разобраться какая таблица на какой справочник ссылается.Достаточно использовать понятную систему наименований (читай стандарт) и все становится понятным. Собственно система названий для всех объектов делают структуры читаемыми. GoffmanПо всем параметрам, "классический" подход к справочникам более качественный, с точки зрения дальнейшей работы с данными. Единственный "недостаток" - небольшие затраты на написание скрипта DDL.Но даже в этом случае, если кто-то штампует эти справочники пачками, этот процесс можно автоматизировать.Ну Вы почитайте, тут уже говорилось о выигрышах, что по десять раз писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 17:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanВыгода как я понимаю заключается только в экономии времени. Ну да, такой подход позволяет с экономить на одном справочнике минут 10-15. Не всегда так как у Вас. Часто - это выбор между "заплатить разработчику и прождать две недели" (со всеми прелестями изменения схемы БД на работающей системе (с)) или дать указание своему админу, что мгновенно и бесплатно... GoffmanС другой стороны мы имеем: * Отсутствие целостности данных на уровне БД. Этот пункт особенно обостряется, если с базой будет работать (даже в перспективе) несколько приложенийНу или отсутствие этого отсутствия, когда все ОЦ соблюдены. В таком случае и другие приложения могут этим пользоваться, т.к. никакой логики обработки данных на клиенте нет. Goffman* Потенциальная проблема расширения любого справочника, со всеми прелестями изменения схемы БД на работающей системе.Тут уже платить придется, это оправданно. Goffman* Отсутствие четкой и понятной схемы данных - имея только DDL, сложно разобраться какая таблица на какой справочник ссылается.Разбросайте по разным справочникам. Например, Кота Матроскина больше беспокоит проблема с грантами, Вас - с констрейнтами и понятностью схемы... Отсюда выбор - либо много таблиц и вьюха их объединяющая, либо одна таблица... GoffmanЕдинственный "недостаток" - небольшие затраты на написание скрипта DDL.Но даже в этом случае, если кто-то штампует эти справочники пачками, этот процесс можно автоматизировать.Для этого нужны права на create (со всеми прелестями изменения схемы БД на работающей системе (с)). Они, зачастую, только у разработчика. Он, очевидно, не против, чтобы процесс переправки ему финансов был автоматизирован... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 10:20 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ChAЕсли мы говорим о целостной и непротиворечивой модели данных(МД) ПО, то ни о какой кнопке "Создание нового справочника" говорить нельзя. В контексте топика это подразумевает создание новой сущности, не связанной ни с какими другими, т.е., по сути, не входящая в МД ПО. Для её включения необходимо связать с другими сущностями, что требует создания в этих сущностях соответствующего атрибута(ов), хранящего ссылку(и) на элемент(ы) нового классификатора.1. Мне показалось, что в контексте этого топика это не обязательно подразумевает создание новой сущности. 2. Сущность в общем случае может быть связана с другими посредством отношения многие-ко-многим, "хранящего ссылку(и) на элемент(ы) нового классификатора". ChAПроблема в том, что глобальный классификатор всего и вся превращает реляционную модель в "кашу"Нет, модель не превращает. Не всегда превращает. Возможны случаи, когда не превращает. Если говорить о данных, то в кашу при умелом подходе можно превратить даже справочник полов, напичкав его гермафродитами, трансвеститами и кастратами... ChA, которая требует добавления сложной метамодели и написания промежуточного слоя для интерпретации и обработки данных. Таким образом МД ПО, которая нормально реализуема в терминах реляционной МД, зачем-то поднимается на уровень выше и там управляется неким "универсальным" программным кодомДа не поднимается ни на какой уровень выше, все решается средствами СУБД. Я действительно не понимаю о каком "универсальном коде" Вы говорите. Ну и в заключение наш общий рефрен: ChAПричём это вовсе не исключает, что такого категорически не надо делать, просто, на мой взгляд, этим слишком часто злоупотребляют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 11:11 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperChAЕсли мы говорим о целостной и непротиворечивой модели данных(МД) ПО, то ни о какой кнопке "Создание нового справочника" говорить нельзя. В контексте топика это подразумевает создание новой сущности, не связанной ни с какими другими, т.е., по сути, не входящая в МД ПО. Для её включения необходимо связать с другими сущностями, что требует создания в этих сущностях соответствующего атрибута(ов), хранящего ссылку(и) на элемент(ы) нового классификатора.1. Мне показалось, что в контексте этого топика это не обязательно подразумевает создание новой сущности.IMHO, любой новый справочник, включая классификаторы, является новой сущностью. Он описывает некое новое измерение сущностей, тип данных, если угодно. Убедительных доказательств обратного я здесь не увидел, если нетрудно приведите пример, когда добавление нового справочника не приводит к появлению новой сущности. Sgt.Pepper2. Сущность в общем случае может быть связана с другими посредством отношения многие-ко-многим, "хранящего ссылку(и) на элемент(ы) нового классификатора".Там жеChAИногда даже отдельной сущности для реализации связи между новым классификатором и сущностью, его использующей.Но это нисколько не отнимает тот факт, что все сущности будут связаны в единую модель. Ни одна не останется "висеть" в воздухе. Повторюсь, добавление нового справочника влечёт за собой не только появление новой сущности, но и её обязательную связь с другими сущностями модели, прямо или косвенно.Sgt.PepperChAПроблема в том, что глобальный классификатор всего и вся превращает реляционную модель в "кашу"Нет, модель не превращает. Не всегда превращает. Возможны случаи, когда не превращает.Простите, но это не аргумент, это забалтывание. И на "а" бывает и на "я" бывает. Проще всего привести убедительный пример, если он есть.Sgt.PepperЕсли говорить о данных, то в кашу при умелом подходе можно превратить даже справочник полов, напичкав его гермафродитами, трансвеститами и кастратами...Пример с полом как раз и показывает, что в разных случаях есть своя шкала измерений, за которой кроется своя семантика. И пол для паспорта и,например, сексолога это принципиально разные шкалы. Если в первом случае, обычно достаточно идентифицировать отсутствие или наличие МПХ, исключая нестандартные ситуации, то во втором его наличие не играет практически никакой роли. Совпадение некоторых "значений" в данном случае достаточно случайно. Это так же как могут быть красное яблоко и красный трактора, где "красный" - это всего лишь значение и на практике такое совпадение вряд ли не является веским основанием объединить трактора и яблоки в одном классификаторе.Sgt.PepperChA, которая требует добавления сложной метамодели и написания промежуточного слоя для интерпретации и обработки данных. Таким образом МД ПО, которая нормально реализуема в терминах реляционной МД, зачем-то поднимается на уровень выше и там управляется неким "универсальным" программным кодомДа не поднимается ни на какой уровень выше, все решается средствами СУБД.С таким же успехом можно сказать что скажем, машинный код и Паскаль - языки одного уровня, всё ведь всё равно решается на уровне процессора. Тоже позиция. Значит у нас разные понятия об уровне языка. Или точнее, у вас их нет, ведь всё равно всё решается процессором.Sgt.PepperЯ действительно не понимаю о каком "универсальном коде" Вы говорите.Мне казалось очевидным, что это код на SQL, включая диалекты, который должен контролировать работу с данными и доступ к ним. Если сущность реализована стандартно, как таблица, то об этом "заботятся" встроенные механизмы РСУБД посредством декларативного объявления, а не написанием императивного кода. Впрочем, об этом уже столько раз было сказано, в частности - SERG1257, что, честно говоря, я не понимаю, зачем вновь пишу, как мне казалось, очевидные вещи. Sgt.Pepperнаш общий рефренChAПричём это вовсе не исключает, что такого категорически не надо делать, просто, на мой взгляд, этим слишком часто злоупотребляют.Боюсь, только звучит он для нас по-разному. Для меня "глобальный классификатор" исключительный случай и относится к дополнительному функционалу, в частности, как упоминалось ранее, для реализации семантической сети, но никак не к моделировании предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 13:06 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ChASgt.Pepperнаш общий рефренпропущено... Боюсь, только звучит он для нас по-разному. Для меня "глобальный классификатор" исключительный случай и относится к дополнительному функционалу, в частности, как упоминалось ранее, для реализации семантической сети, но никак не к моделировании предметной области.Никак не пойму почему Вы считаете, что для меня иначе?.. Я именно про семантическую сеть... ChAIMHO, любой новый справочник, включая классификаторы, является новой сущностью. Он описывает некое новое измерение сущностей, тип данных, если угодно. Убедительных доказательств обратного я здесь не увидел, если нетрудно приведите пример, когда добавление нового справочника не приводит к появлению новой сущности.На логическом уровне это может быть добавление новой строки в таблицу. Считать ли это новой сущностью - вопрос философский, коллеги уже об этом намекали. ChAПовторюсь, добавление нового справочника влечёт за собой не только появление новой сущности, но и её обязательную связь с другими сущностями модели, прямо или косвенно.Косвенно она с ними уже связана, может быть более уместно сказать, что не косвенно, а "прямо" через таблицу n:n. Сущность "страны" Вас устраивает? Изначально создано отношение id_country, id_справочника, id_значение_справочника. id_country+id_справочника = pk. Пользователем (админом) добавлен новый справочник и он уже связан (уж не берусь судить прямо или косвенно) с таблицей стран. Где нарушение РМД?.. Где тут "висит в воздухе"?.. Где зависимость от приложения?.. Напоминаю, что я рассматриваю это только как "семантическую сеть", без логики обработки таких данных... ChAПростите, но это не аргумент, это забалтывание. И на "а" бывает и на "я" бывает. Проще всего привести убедительный пример, если он есть.Чуть выше привел, да и не раз он уже приводился. Что-то непонятно? Неужели нужен sql-код?.. ChAЕсли сущность реализована стандартно, как таблица, то об этом "заботятся" встроенные механизмы РСУБД посредством декларативного объявления, а не написанием императивного кода. Впрочем, об этом уже столько раз было сказано, в частности - SERG1257, что, честно говоря, я не понимаю, зачем вновь пишу, как мне казалось, очевидные вещи.Так я и SERG1257 не понимаю так же как и Вас - где здесь императивный код?.. В инсерте строки в таблицу?.. Чем не декларативно объявление суперсправочника в виде id_справочника, id_значение, строка_значение?.. Где я сбежал за пределы СУБД?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 13:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperНе всегда так как у Вас. Часто - это выбор между "заплатить разработчику и прождать две недели" или дать указание своему админу, что мгновенно и бесплатно... Признаться, не могу себе представить реальное применение такому подходу. Справочник ведь нужен не сам по себе, его нужно увязывать с общей моделью данных, то есть делать на него ссылочные поля в таблицах, дорабатывать под него юзерфейс, отчеты и т.д. Уж не говорю о внедрении и сопровождении "данного решения". И всем этим будет заниматься "местный админ"? Я вас умоляю... :) Sgt.PepperНу или отсутствие этого отсутствия, когда все ОЦ соблюдены. В таком случае и другие приложения могут этим пользоваться, т.к. никакой логики обработки данных на клиенте нет. Под ОЦ вы вероятно подразумеваете FK? Но ведь это мало в случае совмещенного справочника. У нас в одном справочнике лежат наименования валют и марки цемента. Кто нам помешает в поле, отвечающее за марку цемента, записать ссылку на валюту? Уж точно не FK. Получается механизмы целостности придется реализовывать на другом уровне - ХП, приложение и т.п. Sgt.PepperПотенциальная проблема расширения любого справочника, со всеми прелестями изменения схемы БД на работающей системе -Тут уже платить придется, это оправданно. пожалеть 15 минут при разработке, имея шансы заработать потом недельный гемор - это по вашему оправдано? ну конечно кому как... Sgt.PepperНапример, Кота Матроскина больше беспокоит проблема с грантами, Вас - с констрейнтами и понятностью схемы... Согласен. Так как не существует определенных стандартов на разработку ПО, разработчика волнуют больше собственные интересы, чем интересы заказчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 22:31 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanПризнаться, не могу себе представить реальное применение такому подходу. Справочник ведь нужен не сам по себе, его нужно увязывать с общей моделью данных, то есть делать на него ссылочные поля в таблицах, дорабатывать под него юзерфейс, отчеты и т.д. Уж не говорю о внедрении и сопровождении "данного решения". И всем этим будет заниматься "местный админ"? Я вас умоляю... :) Зачастую, конечно, этого будет недостаточно. В первую очередь это упрощение работы разработчиков. Скажем паттерн проектирования и разработки. GoffmanПод ОЦ вы вероятно подразумеваете FK? Но ведь это мало в случае совмещенного справочника. У нас в одном справочнике лежат наименования валют и марки цемента. Кто нам помешает в поле, отвечающее за марку цемента, записать ссылку на валюту? Уж точно не FK. Получается механизмы целостности придется реализовывать на другом уровне - ХП, приложение и т.п.FK помешает. Читайте, описывалось ранее. Goffmanпожалеть 15 минут при разработке, имея шансы заработать потом недельный гемор - это по вашему оправдано? ну конечно кому как...Удивляюсь, почему такая, по сути, простая задача требует у Вас неделю работы. Может вы что-то не так делаете? GoffmanТак как не существует определенных стандартов на разработку ПО, ...Вообще-то существуют. Попробуйте гугл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:03 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenGoffmanТак как не существует определенных стандартов на разработку ПО, ...Вообще-то существуют. Попробуйте гугл.Не существуют. Есть некоторые общие (укрупненные) рекомендации. Не более. В любом продукте можно найти кучу отступлений от "правил". Много уникальных продуктов и линеек технологий. И в них свои стандарты. Даже такая, казалось бы более определенная вещь как ГУИ и та не имеет четких стандартов. Нужны примеры ? Возьмите до предела банальный чекбокс. Есть единый стандарт ? Да хрен там !!! В разных продуктах у чекбоксов поведение может отличаться. Чем ? Фокус есть/нет. Переключение пробелом есть/нет. Свертывание строк есть/нет. Грей есть/нет. Клик на тексте есть/нет. А это всего лишь сраный чекбокс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSVНе существуют. Есть некоторые общие (укрупненные) рекомендации. Не более.Ну как же. Тот же стандарт SQL, которому в той или иной степени соответствуют СУБД, различные xDBC, ASCII. LSVДаже такая, казалось бы более определенная вещь как ГУИ и та не имеет четких стандартов.Как раз GUI совсем не является "определенной" вещью, поэтому все и делают, как кому нравится. Хотя всякие SDI, MDI я считаю попытками унификации. Если вспомнить CAD-пакеты, офисные приложения (под Windows конечно же) то у них было очень много общего, т.е. "стандартного". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 12:00 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Тот же стандарт SQL, которому в той или иной степени соответствуюНу да, конечно. Этих под-стандартов - вагон и тележка. Причем их существование зачастую ничем не оправдано (их можно реально сократить). Возьмите хотя бы графические стандарты. Их же эпические тыщи. Одних JPG несколько. Почти всегда можно найти графический/видео файл, кот. нормально не откроется и потребует специального драйвера/вьювера и т.д. зы: Нет ничего более примитивного чем чекбокс. Но и там умудрились наделать "несколько стандартов". :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 13:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSVЭтих под-стандартов - вагон и тележка. Причем их существование зачастую ничем не оправдано (их можно реально сократить).Ну так и предлагайте. В ANSI. Там много стандартов, которые Вы используете каждый день. LSVВозьмите хотя бы графические стандарты. Их же эпические тыщи. Одних JPG несколько. Почти всегда можно найти графический/видео файл, кот. нормально не откроется и потребует специального драйвера/вьювера и т.д. Это форматы. Не все они стандартизованы, но многие. И что? LSVзы: Нет ничего более примитивного чем чекбокс. Есть. Label например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenLSVзы: Нет ничего более примитивного чем чекбокс. Есть. Label например. Это только так кажется, что все примитивно. Команда Моно отказалась от идеи портировать wpf, прочитав только полную спецификацию в несколько десятков листов всего на один элемент(не помню точно какой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 16:32 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SeVaЭто только так кажется, что все примитивно. Команда Моно отказалась от идеи портировать wpf, прочитав только полную спецификацию в несколько десятков листов всего на один элемент(не помню точно какой).Я не говорил о примитивности, а даже наоборот: Как раз GUI совсем не является "определенной" вещью, поэтому все и делают, как кому нравится. Т.е. с тем что для GUI существуют проблемы стандартизации все согласны. За сим предлагаю прекратить оффтопить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenТ.е. с тем что для GUI существуют проблемы стандартизации все согласныТочно такие же проблемы и в программировании. Буквально на каждом шагу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenFK помешает. Читайте, описывалось ранее. Неплохо было бы, если бы вы подтвердили свои слова пуфлинком. Infernal V. RavenУдивляюсь, почему такая, по сути, простая задача требует у Вас неделю работы. Может вы что-то не так делаете? Очевидно вы недооцениваете сложность задачи. Просто добавить новую таблицу в базу - этого недостаточно. Нужно переадресовать все связи таблицах, внести изменения во всех ХП, приложениях, отчетах, подготовить боевую базу к переносу данных, и прочая прочая GoffmanТак как не существует определенных стандартов на разработку ПО, ...Infernal V. RavenВообще-то существуют. Попробуйте гугл. Опять же, пруфлинк в студию. Найдите, к примеру, такой стандарт, где указано, в каком случае следует использовать "объединенный" справочник, а в каком случае его использовать не следует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 12:11 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanНеплохо было бы, если бы вы подтвердили свои слова пуфлинком."ПуфЛинк" 15431877 в частности. Хотя я обычно предпочитаю не делать FK. Infernal V. RavenОчевидно вы недооцениваете сложность задачи. Просто добавить новую таблицу в базу - этого недостаточно. Нужно переадресовать все связи таблицах, внести изменения во всех ХП, приложениях, отчетах, подготовить боевую базу к переносу данных, и прочая прочаяКакие изменения вы собрались делать в ХП? Отчеты поиском проходятся. Без особых проблем и недельных посиделок. Накат на боевую базу - стандартная операция, которая выполняется каждый раз при изменениях структур и кода, т.е. ничего особенного в этом случае нет. С интеграционными схемами конечно сложнее. На моей практике вывод справочника из лукапа происходил настолько редко, что даже не припомню сколько раз это было. Возможно даже 2. Если не заниматься параноидальным сливом всех справочников в лукапы и таким же параноидальным занятием "все справочники в таблицы", то ничего страшного не происходит. GoffmanОпять же, пруфлинк в студию. Найдите, к примеру, такой стандарт, где указано, в каком случае следует использовать "объединенный" справочник, а в каком случае его использовать не следует.Разве я говорил что такой стандарт существует? Вы говорили что стандартов на разработку ПО не существует. Т.е. вообще не существует. Я с этим не согласился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 14:49 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanSgt.PepperНе всегда так как у Вас. Часто - это выбор между "заплатить разработчику и прождать две недели" или дать указание своему админу, что мгновенно и бесплатно... Признаться, не могу себе представить реальное применение такому подходу. Справочник ведь нужен не сам по себе, его нужно увязывать с общей моделью данных, то есть делать на него ссылочные поля в таблицах, дорабатывать под него юзерфейс, отчеты и т.д. Уж не говорю о внедрении и сопровождении "данного решения". И всем этим будет заниматься "местный админ"? Я вас умоляю... :) Не надо меня умолять. Нет понятия "ссылки" в РМД. Связи в общем случае реализуются посредством отношений. И это отношение УЖЕ создано разработчиком. Поэтому админу нужно сделать инсерт одной записи в "справочники" и наполнить этот справочник значениями, выполнив еще несколько инсертов. После чего никакой интерфейс дорабатывать не надо, поэтому "внедрение" отменяется... GoffmanSgt.PepperНу или отсутствие этого отсутствия, когда все ОЦ соблюдены. В таком случае и другие приложения могут этим пользоваться, т.к. никакой логики обработки данных на клиенте нет. Под ОЦ вы вероятно подразумеваете FK? Но ведь это мало в случае совмещенного справочника. У нас в одном справочнике лежат наименования валют и марки цемента. Кто нам помешает в поле, отвечающее за марку цемента, записать ссылку на валюту? Уж точно не FK. Получается механизмы целостности придется реализовывать на другом уровне - ХП, приложение и т.п.Под ОЦ я понимаю ОЦ. В данном случае объявив уникальность id_объекта+id_справочника я гарантирую, что для экземпляра объекта пользователь сможет указать только одно значение валюты и одно значение марки цемента. (я надеюсь, что "в одном справочнике" - это описка, Вы имели в виду "в одной таблице") Нет "поля, отвечающее за марку цемента", есть запись с маркой цемента. Непонятно почему ХП для Вас - другой уровень, но тут и ХП пока не требуются, исключительно декларативные ОЦ. Про приложение речь вообще не идет... GoffmanSgt.PepperПотенциальная проблема расширения любого справочника, со всеми прелестями изменения схемы БД на работающей системе -Тут уже платить придется, это оправданно. пожалеть 15 минут при разработке, имея шансы заработать потом недельный гемор - это по вашему оправдано? ну конечно кому как...Если справочник перестает быть классификатором вида id+name и требует введения дополнительных атрибутов или дополнительной логики, то обсуждаемый подход не годится. Я это имел в виду, а Ваш комментарий ниасилил... GoffmanSgt.PepperНапример, Кота Матроскина больше беспокоит проблема с грантами, Вас - с констрейнтами и понятностью схемы... Согласен. Так как не существует определенных стандартов на разработку ПО, разработчика волнуют больше собственные интересы, чем интересы заказчика.А заказчика интересуют собственные интересы... Что из ЭТОГО следует?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 07:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanInfernal V. RavenУдивляюсь, почему такая, по сути, простая задача требует у Вас неделю работы. Может вы что-то не так делаете? Очевидно вы недооцениваете сложность задачи. Просто добавить новую таблицу в базу - этого недостаточно. Нужно переадресовать все связи таблицах, внести изменения во всех ХП, приложениях, отчетах, подготовить боевую базу к переносу данных, и прочая прочаяМожно я прокомментирую? Давайте для простоты все же считать, что справочник добавляется не в виде новой таблицы, а в виде строки в таблицу Справочники + строк в таблицу ЗначенияСправочников с атрибутом id_справочника(FK). С использованием метаданных одно легко представляется как другое - это детали реализации подхода, с которым, как я понимаю, Вы и спорите, а именно: < Добавлять справочники-классификаторы без участия разработчика недопустимо. Ну или неоправданно, т.к. связано со страшным геморроем. > Справочник, как экземпляр сущности Справочники, связан с другой сущностью, назовем ее ОбъектыУчета. Эта связь может быть выражена хоть через FK, хоть через 25 промежуточных отношений. Ученик, как экземпляр сущности Ученики, связан с другой сущностью, назовем ее Школы. Здесь тоже не вдаемся в детали реализации этой связи, но она запрограммирована разработчиком. Вопросы: 1. При необходимости добавить нового ученика Вы обращаетесь к разработчику и затем накатываете патчи? 2. Требуется ли при добавлении ученика "переадресовать все связи таблицах, внести изменения во всех ХП, приложениях, отчетах, подготовить боевую базу к переносу данных"? 3. Если отвлечься от семантики, то почему Вы не допускаете на уровне модели данных, что со справочниками можно действовать аналогично ученикам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 10:37 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenGoffmanНеплохо было бы, если бы вы подтвердили свои слова пуфлинком."ПуфЛинк" 15431877 в частности. Хотя я обычно предпочитаю не делать FK. Infernal V. RavenОчевидно вы недооцениваете сложность задачи. Просто добавить новую таблицу в базу - этого недостаточно. Нужно переадресовать все связи таблицах, внести изменения во всех ХП, приложениях, отчетах, подготовить боевую базу к переносу данных, и прочая прочаяКакие изменения вы собрались делать в ХП? Отчеты поиском проходятся. Без особых проблем и недельных посиделок. Накат на боевую базу - стандартная операция, которая выполняется каждый раз при изменениях структур и кода, т.е. ничего особенного в этом случае нет. С интеграционными схемами конечно сложнее. На моей практике вывод справочника из лукапа происходил настолько редко, что даже не припомню сколько раз это было. Возможно даже 2. Если не заниматься параноидальным сливом всех справочников в лукапы и таким же параноидальным занятием "все справочники в таблицы", то ничего страшного не происходит. GoffmanОпять же, пруфлинк в студию. Найдите, к примеру, такой стандарт, где указано, в каком случае следует использовать "объединенный" справочник, а в каком случае его использовать не следует.Разве я говорил что такой стандарт существует? Вы говорили что стандартов на разработку ПО не существует. Т.е. вообще не существует. Я с этим не согласился.вы спорите с голосами в своей голове ибо сказано: автортак как не существует определенных стандартов на разработку ПО, любой математикс, как угодно небольшой, остерёгся бы спорить именно с такой постановкой вопроса. если не вчитывать в слово "определенных" определенного смысла, а именно -- удобного для опровержения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 12:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
хехехавтортак как не существует определенных стандартов на разработку ПО, любой математикс, как угодно небольшой, остерёгся бы спорить именно с такой постановкой вопроса. если не вчитывать в слово "определенных" определенного смысла, а именно -- удобного для опровержения.В слово "определенных" предлагаю вкладывать смысл "определены и зафиксированы на бумаге"... Разработка ПО, пожалуй, есть комплекс мероприятий. Тем не менее, многие стороны этого процесса как минимум формализованы. Ну или определены в вышеуказанном смысле, скажем, стандартами, спецификациями или даже ГОСТами... Нет единого стандарта разработки ПО, но утверждение, что не существует вообще никаких стандартов в разработке ПО является ложным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 12:32 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Raven"ПуфЛинк" 15431877 в частности. что конкретно из этого поста опровергает мои слова? это то же самое, что говорил я, только другими словами автор.....То есть никакой физической связи со справочником заявок не будет, а вся логика будет перенесена на уровень приложения... .... Физическая связь может и присутствовать, другое дело, ты не сможешь средствами СУБД (констрейнтов) контролировать, что в нужную таблицу попали значения именно из нужного справочника... Infernal V. RavenХотя я обычно предпочитаю не делать FK. Многие, в том числе и я, такой подход не одобрят, но в конце концов, это ваше дело Infernal V. RavenКакие изменения вы собрались делать в ХП? Отчеты поиском проходятся. и т.д.... я так понимаю, вы пытаетесь примерить ситуацию на собственные разработки. Не спорю что в вашем конкретном случае проблем с изменением схемы данных нет. Я пытался привести проблему в общем виде. А предмета для спора, считаю здесь нет, трудоемкость перепроектирования системы сильно зависит от масштаба системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 16:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperНет понятия "ссылки" в РМД. Связи в общем случае реализуются посредством отношений. В теории РБД нет так же понятия атомарный и объединенный справочник, но это почему то вас не смущает. Понятие "ссылочное поле" я использовал намеренно, т.к. в круг обсуждаемых систем входят системы c FK и без FK. Sgt.PepperПоэтому админу нужно сделать инсерт одной записи в "справочники" и наполнить этот справочник значениями, выполнив еще несколько инсертов. После чего никакой интерфейс дорабатывать не надо, поэтому "внедрение" отменяется... Уже не раз повторялось, что недостаточно просто сделать новый справочник. Ну например, у нас есть каталог обуви, и нам понадобилось добавить классификацию по цвету. Что нам нужно сделать? 1. создать классификатор цветов (неважно в отдельной таблице или в объединенном справочнике) 2. создать в "таблице обуви" атрибут "цвет" - который будет ссылаться на классификатор "цвет" 3. создать в UI контрол, который будет обслуживать атрибут "цвет обуви" 4. добавить цвет обуви в действующие отчеты. и т.д. в зависимости от постановки задачи Sgt.Pepper.......В данном случае объявив уникальность id_объекта+id_справочника я гарантирую, что для экземпляра объекта пользователь сможет указать только одно значение валюты и одно значение марки цемента......... Да, но вы при помощи только FK не сможете гарантировать, что в экземпляра объекта в атрибуте "валюта" не появится значение из справочника "марка цемента". Эти ограничения придется реализовывать на более высоком уровне. (ХП я считаю уровнем выше, чем уровень таблиц и ОЦ) Sgt.PepperЕсли справочник перестает быть классификатором вида id+name и требует введения дополнительных атрибутов или дополнительной логики, то обсуждаемый подход не годится. Я это имел в виду, а Ваш комментарий ниасилил... Что не годится - это как раз понятно, проблема не только в этом. уже говорилось о том, что доп. атрибуты часто появляются не на этапе проектирования, а в процессе эксплуатации системы. Вот, человек привел пример из практики http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1071594&msg=15444907 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 14:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanНу например, у нас есть каталог обуви, и нам понадобилось добавить классификацию по цвету. Что нам нужно сделать? 1. создать классификатор цветов (неважно в отдельной таблице или в объединенном справочнике) 2. создать в "таблице обуви" атрибут "цвет" - который будет ссылаться на классификатор "цвет" 3. создать в UI контрол, который будет обслуживать атрибут "цвет обуви" 4. добавить цвет обуви в действующие отчеты. 1. Добавляем строу в справочник справочников 2. Добавляем атрибут в описание класса Обувь (или Товар) 3. меняется автоматически 4. модифицурием отчеты ссотв. средствами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 14:39 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> 1. Добавляем строу в справочник справочников Браво. Появляются автомобили с уникальным цветовым кодированием и уникальным именем цвета каждого вендора - добавляем новый справочник. Появляется необходимость учёта цвета и фактуры - добавляем ещё один справочник. Появляется необходимость использовать цветовые комбинации - добавляем ещё один. Я и говорю: разруха - в головах (с) Филипп Филиппович Преображенский. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 15:48 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Браво. Появляются автомобили с уникальным цветовым кодированием и уникальным именем цвета каждого вендора - добавляем новый справочник. Появляется необходимость учёта цвета и фактуры - добавляем ещё один справочник. Появляется необходимость использовать цветовые комбинации - добавляем ещё один. Зачем ? Все укладывется в один. И вооще все определяется прикладной областью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 17:36 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Goffmanчто конкретно из этого поста опровергает мои слова? это то же самое, что говорил я, только другими словами автор.....То есть никакой физической связи со справочником заявок не будет, а вся логика будет перенесена на уровень приложения...Как не будет. А FK на что? :) Ниже же сами процитировали. ...Физическая связь может и присутствовать, другое дело, ты не сможешь средствами СУБД (констрейнтов) контролировать, что в нужную таблицу попали значения именно из нужного справочника...FK ограничивает? Да. Но допускает использование данных других справочников, что не есть хорошо. Формально и фактически тем не менее физическая связь будет. Этот вариант предлагал не я, но тем не менее мои коллеги его используютGoffmanМногие, в том числе и я, такой подход не одобрят, но в конце концов, это ваше делоНичего личного, но честно говоря, мне Ваше мнение (пока оно не будет достаточно аргументированным), мягко говоря, до лампочки, а уж одобрение еще больше.Goffmanя так понимаю, вы пытаетесь примерить ситуацию на собственные разработки. Не спорю что в вашем конкретном случае проблем с изменением схемы данных нет. Я пытался привести проблему в общем виде. А предмета для спора, считаю здесь нет, трудоемкость перепроектирования системы сильно зависит от масштаба системы.В каком моем конкретном случае? Я нигде не приводил описание своих конкретных случаев, а уж тем более взывал к разуму почти в каждом посте при выборе того или иного решения. Это как раз вообщем. А теперь давайте к конкретике - будьте добры, опишите, что в ваших системах содержат ХП, что правка превращается в сущий ад, требующий недюжих сил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 18:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Браво. Появляются автомобили с уникальным цветовым кодированием и уникальным именем цвета каждого вендора - добавляем новый справочник. Появляется необходимость учёта цвета и фактуры - добавляем ещё один справочник. Появляется необходимость использовать цветовые комбинации - добавляем ещё один.Я так понял, у тебя есть серебряная пуля. Поделись пожалуйста, а то народ мучается, головы ломает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 18:05 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Raven А теперь давайте к конкретике - будьте добры, опишите, что в ваших системах содержат ХП, что правка превращается в сущий ад, требующий недюжих сил? Э нет, так дело не пойдет. Есть традиционный банальный подход - мухи отдельно, котлеты отдельно. Правильно, банально, скучно. Вы утверждаете, что если нарушить правила, то можно получить некие преимущества. Причем какие именно преимущеста озвучено не было. Было сказано - мне удобно , чисто субъективный критерий (может удобно потому что привычно). EAV предлагаю убрать за скобки. В то время, как я могу привести недостатки такого подхода, пусть маловероятные, но объективные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 18:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Э нет, так дело не пойдет. Есть традиционный банальный подход - мухи отдельно, котлеты отдельно. Правильно, банально, скучно. Да конечно отдельно, я поэтому и просил указать, что же там такое лежит, что работать прям нельзя. И этот вопрос никак не связан с общим справочником, поскольку любая другая миграция справочников (слияние справочников например) вызывает потребность в тех же действиях. Так что дело идет дальше :) SERG1257Вы утверждаете, что если нарушить правила, то можно получить некие преимущества. Причем какие именно преимущеста озвучено не было. Было сказано - мне удобно , чисто субъективный критерий (может удобно потому что привычно). EAV предлагаю убрать за скобки. В то время, как я могу привести недостатки такого подхода, пусть маловероятные, но объективные.Да и без EAV достаточно. Вот коллега, например, говорил: 15434142 . Там еще есть примеры, если поискать. Никто вас не принуждает делать так, как описано и никто не утверждал, что применение общего справочника - единственно верный метод. Просто такой подход позволяет экономить время и упрощает проектирование, разработку и сопровождение в многих случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 18:50 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. Raven Вот коллега, например, говорилЯ там же коллеге возражал. И ответов не получил. Потому что на "мне так удобно" - крыть нечем. Приходит к вам крошка сын (типа ТС) и спрашивает: а можно ли стоять под стрелой, не мыть руки перед едой или переходить дорогу в неположенном месте. Что вы ему ответите на законный вопрос: "а я это вчера делал и мне ничего не было. Нафиг тогда эти правила, мне так удобно" Infernal V. RavenПросто такой подход позволяет экономить время и упрощает проектирование, разработку и сопровождение в многих случаях. Упрощает проектирование - согласен, разработку ограниченно согласен - не верю, что слепить форму по шаблону занимает много больше времени. сопровождение - категорически не согласен. Для сопровождения все эти кунштюки - как серпом. Пусть безобразно, но единообразно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:59 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> народ мучается, головы ломает Народ, как вы можете видеть, головы не ломает, а тупо херачит справочники. Ломал бы - был бы повод для обсуждения. > есть серебряная пуля Цвет - удачный пример несостоятельности распространённой реализации "всё в одном". Если вы посмотрите чуть дальше, то легко увидите, что и стандартных способов кодирования цвета больше одного. Плюс отраслевые. Плюс вендор-лок. Плюс сочетания. Для обычных задач этого вполне достаточно. Нужна реализация - сформулируйте задачу, определите сроки и бюджет. Меня это вряд ли заинтересует, но, возможно, кого-нибудь найдёте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:32 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
SERG1257Infernal V. Raven Вот коллега, например, говорилЯ там же коллеге возражал. И ответов не получил. Потому что на "мне так удобно" - крыть нечем. Ну давай я отвечу -- Задолбало иметь десятки таблиц с 2-5 записями в каждой. --- Чем именно это напрягает? Меня и других коллег напрягает иметь кучу таблиц, с однотипной структурой и однотипными запросами, но к разным таблицам, и то что эти таблицы нужно обслуживать, вместо того, чтобы реализовать единый стандарт хранения и взаимодействия со схожими данными. Да, это удобно. Поэтому аргумент "удобно" перестает быть субъективным, а становится объективным. -- Задолбало придумывать им имена. --- А логические имена придумывать типа не надо. Придумывать названия надо и более того желательно также подход к именованию стандартизовать. -- а потом будешь столько-же искать эту чёртову таблицу --- Пользуйтесь словарем БД Да можно конечно пользоваться словарем, но комментирование таблиц различается в СУБД. И тем более различается способом и удобство получения этих комментариев. Искать по описанию таблицу в MSSQL, например, не так приятно, а в описании справочника в таблице - удобнее. -- Здесь же поиск искомого значения в один клик. --- Создайте вьюху с union all чтобы искать в один клик. Не убедил Ну это меня вообще убило. Городить вьюху (и поддерживать ее) вместо изначально типизированного решения это конечно да, намного удобнее. Снимаю шляпу - мсье знает толк в извращениях. SERG1257Приходит к вам крошка сын (типа ТС) и спрашивает: а можно ли стоять под стрелой, не мыть руки перед едой или переходить дорогу в неположенном месте. Что вы ему ответите на законный вопрос: "а я это вчера делал и мне ничего не было. Нафиг тогда эти правила, мне так удобно"Передергиваете. Я бы привел другой пример - есть дорога, которую нужно перейти, при этом пешеходного перехода в ближайшем обозрении нет. Если дорога по 3 ряда в каждую сторону с плотным движением, то тут даже многим альтернативно одаренным понятно, что делать этого не следует. А если это дорога в глухом районе на окраине города, то можно перейти ее оглянувшись по сторонам. Суть аналогии, надеюсь, уловили. SERG1257разработку ограниченно согласен - не верю, что слепить форму по шаблону занимает много больше времени. сопровождение - категорически не согласен. Для сопровождения все эти кунштюки - как серпом. Пусть безобразно, но единообразно.По разработке - это как раз унификация. Примеров масса, во многих промышленных системах. По сопровождению, говорили уже, что стараться минимизировать операции DDL - нормальная практика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621Цвет - удачный пример несостоятельности распространённой реализации "всё в одном". Если вы посмотрите чуть дальше, то легко увидите, что и стандартных способов кодирования цвета больше одного. Плюс отраслевые. Плюс вендор-лок. Плюс сочетания. Для обычных задач этого вполне достаточно.И о чем это говорит? На мой взгляд о том, что нужно пойти от задачи и проектировать соответствующим образом в зависимости от нее, а не от сферического коня представленного тобой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:50 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.Pepper GoffmanСогласен. Так как не существует определенных стандартов на разработку ПО, разработчика волнуют больше собственные интересы, чем интересы заказчика.А заказчика интересуют собственные интересы... Что из ЭТОГО следует?... Как минимум, что у разработчика зачастую нет интереса создавать для заказчика качественное и масштабируемое решение, и в этом смысле становится понятным его стремление увеличить скорость разработки за счет отступления от классических правил построения БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> о чем это говорит? О том, что проектированием баз данных занимаются по большей части долбо^бы, не имеющие ни малейшего представления ни о стандартах, ни о правилах проектирования, ни о решаемых задачах. Исключения есть, сложность в том, что и постановкой задач занимаются такие же долбо^бы, - у разработчика должен быть ну очень не тривиальный подход, чтобы и хотеть, и иметь возможность выйти за рамки "работает - не трогай". > нужно пойти от задачи Продемонстрируйте ваш навык "пойти от задачи". Задача тривиальнейшая: контекстно-зависимый справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 21:22 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenФормально и фактически тем не менее физическая связь будет Ну и что толку от этой физической связи, если она, цитирую вас, "допускает использование данных других справочников, что не есть хорошо"? Infernal V. RavenНичего личного, но честно говоря, мне Ваше мнение (пока оно не будет достаточно аргументированным), мягко говоря, до лампочки, а уж одобрение еще больше. В общем то я выражал свое мнение не о вас, а о вашем подходе к проектированию. Но если вы уж так не терпите критики, зачем тогда приводить свои методы работы в качестве аргумента? Infernal V. RavenВ каком моем конкретном случае? Я нигде не приводил описание своих конкретных случаев Infernal V. RavenКакие изменения вы собрались делать в ХП? Отчеты поиском проходятся. Без особых проблем и недельных посиделок. Накат на боевую базу - стандартная операция, которая выполняется каждый раз при изменениях структур и кода, т.е. ничего особенного в этом случае нет. С интеграционными схемами конечно сложнее. На моей практике вывод справочника из лукапа происходил настолько редко, что даже не припомню сколько раз это было. Возможно даже 2. Если не заниматься параноидальным сливом всех справочников в лукапы и таким же параноидальным занятием "все справочники в таблицы", то ничего страшного не происходит. А это, вы разве не на примере своей системы описывали? Если нет - то смею вас уверить, что далеко не у всех все так идеально. Бывает и так, когда на предприятии зоопарк систем, которые разрабатывались в разное время на разных платформах, потом между ними проводилась интеграция. Каким тут поиском пройдешь? В этих условиях ни один ит-шник не сможет на 100% сказать, в каких частях системы используется та или иная таблица. Поэтому любые работы связанные с перепроектированием систем очень неприятны и трудоемки, нужно подстраховываться, какое то время вести параллельный ввод и т.д. Надеюсь на этот раз понятно объяснил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 22:15 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Infernal V. RavenНо допускает использование данных других справочников, что не есть хорошо. Стало быть в БД появятся "использование данных других справочников". Это может привести к ошибочной информации, если не принимать дополнительных усилий по разрулированию. Тогда как в культутрной РБД достаточно наложить FK. Поэтому суждение Infernal V. Raven...аргумент "удобно" перестает быть субъективным, а становится объективным. все еще может вызывать опасения, что в БД из-за "удобно" "стало объективным" можно ожидать и других сЮпризов типа "не есть хорошо". Не всегда же БД создают только ради того, чтобы занять персонал набором данных, что было бы "удобно" для разаботчкика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 09:09 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621> о чем это говорит? О том, что проектированием баз данных занимаются по большей части долбо^бы, не имеющие ни малейшего представления ни о стандартах, ни о правилах проектирования, ни о решаемых задачах. Исключения есть, сложность в том, что и постановкой задач занимаются такие же долбо^бы, - у разработчика должен быть ну очень не тривиальный подход, чтобы и хотеть, и иметь возможность выйти за рамки "работает - не трогай". > нужно пойти от задачи Продемонстрируйте ваш навык "пойти от задачи". Задача тривиальнейшая: контекстно-зависимый справочник.Ну уж Д'Артаньяну демонстрировать желания нет, уж извини :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:11 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> демонстрировать желания нет Слив засчитан. Что и требовалось доказать. Желания нет или - что вероятнее - знаний нет, - вопрос риторический. Ковыряйтесь в своей песочнице и не лезьте в обсуждение того, чего не понимаете. Не нужно стараться казаться более значительным, чем есть на самом деле. Смешно выглядит. Ы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanНу и что толку от этой физической связи, если она, цитирую вас, "допускает использование данных других справочников, что не есть хорошо"?Ну я и говорил, что предпочитаю не делать FK, хотя кто-то их делает. GoffmanВ общем то я выражал свое мнение не о вас, а о вашем подходе к проектированию. Но если вы уж так не терпите критики, зачем тогда приводить свои методы работы в качестве аргумента?Да как же. Как можно понять по-другому Вашу формулировку? По-моему это личная оценка и никак иначе. Что касается проектирования, то единственным аргументом против использования общего справочника действительно является отсутствие FK на значение справочника. Если это не является критичным (я уже устал повторять, что на каждый справочник нужно смотреть), то я (и другие проектировщики различных систем) готовы этим пожертвовать. Других аргументов пока не поступало. GoffmanА это, вы разве не на примере своей системы описывали? Если нет - то смею вас уверить, что далеко не у всех все так идеально.Идеальных систем не встречал. В основном я привожу примеры из своей практики, но в первую очередь пытаюсь узнать, что за проблемы в системах коллег и какая задача решается, в частности и вашей, чтобы не давать необдуманных советов. GoffmanБывает и так, когда на предприятии зоопарк систем, которые разрабатывались в разное время на разных платформах, потом между ними проводилась интеграция. Каким тут поиском пройдешь? В этих условиях ни один ит-шник не сможет на 100% сказать, в каких частях системы используется та или иная таблица. Поэтому любые работы связанные с перепроектированием систем очень неприятны и трудоемки, нужно подстраховываться, какое то время вести параллельный ввод и т.д. Надеюсь на этот раз понятно объяснил :)Да что вы, правда? :) И что вот так прямо для такой работающей системы возникнет мысль переориентировать справочник->лукап или наоборот? Вот уж не поверю ни разу, поскольку если речь идет о перепроектировании, то проектируется система которая развернута рядом и в нее выполняется миграция. Именно по причине трудоемкости выяснения вопроса "в каких частях системы используется та или иная таблица". Так что теплое с мягким путать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:27 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Задача тривиальнейшая: контекстно-зависимый справочник. А можно уточнить - что это такое ? Тогда и решение будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> А можно уточнить - что это такое ? Про пример с цветом ещё раз прочтите. Задача - одновременно корректно отображать и цвет обуви, и цвет автомобиля, и цвет пломбировочного материала, и цвет, используемый в оригинал-макете. Не нравится цвет - возьмите пол, похожая задача, но гораздо проще. > Тогда и решение будет. Решение тривиально и не представляет интереса само по себе. Интересен не набор таблиц, а требования, предъявляемые к справочникам, посредством которых формируется контекст. Сможете их сформулировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
_модguest_20040621 Задача тривиальнейшая: контекстно-зависимый справочник. А можно уточнить - что это такое ? Тогда и решение будет.Не знаете, что это такое ??? Бывает.... :) Если упрощенно, то: Это когда на список допустимых значений накладывается некий фильтр в завис. от свойств главной сущности. Пример ? Дык был же уже. Цвет автомобиля. В завис. от марки набор возможных цветов или даже их оригинальных названий (ментол, графит, молочный, асфальт, белая ночь и т.п.). Даже красный корпоративный цвет кока-колы имеет специальное название (н-р для рекламистов). зы: Усложнить задачу КЗС можно до бесконечности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSV_модпропущено... А можно уточнить - что это такое ? Тогда и решение будет.Не знаете, что это такое ??? Бывает.... :) Если упрощенно, то: Это когда на список допустимых значений накладывается некий фильтр в завис. от свойств главной сущности. Пример ? Дык был же уже. Цвет автомобиля. В завис. от марки набор возможных цветов или даже их оригинальных названий (ментол, графит, молочный, асфальт, белая ночь и т.п.). Даже красный корпоративный цвет кока-колы имеет специальное название (н-р для рекламистов). Ну а чего тут сложного-то? (я, кстати, при словосочетании "контекстно зависимый справочник" совсем другую вещь представил - значение атрибута "цвет", которое в одном отчете выводится как "серый N21", в другом - "светлый", в третьем "Белая ночь"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:54 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSVЕсли упрощенно, то: Это когда на список допустимых значений накладывается некий фильтр в завис. от свойств главной сущности. Примитивный фильтр на уровне UI. Придумайте что-нибудь поинтереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:07 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин(я, кстати, при словосочетании "контекстно зависимый справочник" совсем другую вещь представил - значение атрибута "цвет", которое в одном отчете выводится как "серый N21", в другом - "светлый", в третьем "Белая ночь"). Контекстно зависимые сисонимы. Посложнее будет, но тоже решаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Ну а чего тут сложного-то? Ничего. Громоздко несколько. Но в данном случае интерес представляет не реализация, а требования к справочникам, которые она предполагает. У каждой сущности - от стандартов до состава контекста - свой жизненный цикл. > значение атрибута "цвет", которое в одном отчете выводится как "серый N21", в другом - "светлый", в третьем "Белая ночь" Соответствия - связанная задача. Хороший, кстати, пример: "светлый" нельзя корректно сопоставить значению цвета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:20 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Хороший, кстати, пример: "светлый" нельзя корректно сопоставить значению цвета. Конечно. Если все значения-синонимы соспоставляются 1:1, то задача тривиальна - оператор ставит любой из синонимов, а система дальше разбирается, что где показывать. А вот если нет - то проблема даже не в структуре таблиц, а в организации удобного заполнения этого поля для оператора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
> Конечно Дело не только в этом. Диапазоны, сегменты - понятно. Светлый - может быть характеристика, например, пива, - здесь цвет как таковой роли не играет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 13:16 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Тока что разбирался с кодом запроса, использующего метОду единого справочника. Ужас. Запрос работает дико медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 14:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Жертва единого справочника.Тока что разбирался с кодом запроса, использующего метОду единого справочника. Ужас. Запрос работает дико медленно. А я, третьего дня, по дороге на работу накрутил какую-то радиостанцию, так там такая музыка была, что мне вообще не понравилось. Аж настроение на целый день испортилось. Случаем не знаете композитора этой гадости? Код запроса в студию, а то может статься, что жертва не Вы , а ни в чём не повинный справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 18:18 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanSgt.Pepperпропущено... А заказчика интересуют собственные интересы... Что из ЭТОГО следует?... Как минимум, что у разработчика зачастую нет интереса создавать для заказчика качественное и масштабируемое решение, и в этом смысле становится понятным его стремление увеличить скорость разработки за счет отступления от классических правил построения БД.В который раз прошу Вас озвучить отступление от классических правил РМД. Эдвард Кодд сказал, что связи реализуются только через FK?.. Если он такого не говорил, то "скорость разработки", "качественное и масштабируемое" решение или финансовые дивиденды участников сделки следует рассматривать в плоскости целесообразности, удобства и т.д., но, возможно, существующие в рамках парадигмы РМД ... Вы, как я понимаю, готовы доказать в случае объединенного справочника конфликт с моделью (с моделью!)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 22:31 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanВ теории РБД нет так же понятия атомарный и объединенный справочник, но это почему то вас не смущает. Понятие "ссылочное поле" я использовал намеренно, т.к. в круг обсуждаемых систем входят системы c FK и без FK.С чего это должно меня смущать, если назови его хоть объединенным, хоть совмещенным, хоть атомарным, он м.б. реализован отношением в контексте РМД?... А в Ваших "связях" и "ссылках" есть некие допущения, которые сужают РМД (уж не знаю - по недомыслию или упертости). У Вас зацикленность на FK... FK - это вырожденная "связь" (или "ссылка" или как еще ни назовите)... В общем случае для "связи" или "ссылки" FK является необходимым условием, но недостаточным, если "связь" или "ссылка" реализована классически, через отношения. GoffmanНу например, у нас есть каталог обуви, и нам понадобилось добавить классификацию по цвету. Что нам нужно сделать? 1. создать классификатор цветов (неважно в отдельной таблице или в объединенном справочнике) 2. создать в "таблице обуви" атрибут "цвет" - который будет ссылаться на классификатор "цвет" 3. создать в UI контрол, который будет обслуживать атрибут "цвет обуви"Вдумайтесь еще раз , что п.2 в общем случае с точки зрения РМД - совсем не обязательный, а как следствие и п.3... ps Вас не смущает, что даже такие радикалы, как guest_XXXXX, не оспаривают соответствия РМД, а утверждают, что так проектируют только долбо^ебы?... И я с этим утверждением в общем согласен - у этого подхода есть очень ограниченная область применения, но я возражаю, что: - он требует "патчей", изменения схемы и внедрения... - его не следует применять никогда... Даже такой касатка проектирования жизни ртом как guest_XXXXX сознался, что подход м.б. применим для "переходных процессов", которые впоследствии следует реализовывать классическим образом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 23:07 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. Это типа как УЖЕ ЕДИНОЖДЫ запрограммировано производителем... Далее Маша начинает юзать все это дело с клиента: Код: sql 1. 2. 3. 4. Потом она говорит - Петя, ты админ или мать тебя?.. Мне сказали, что ты добавишь континенты, а я их должна привязать к этим долбанным странам!.. Вот служебка... Петя: да без проблем! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Маша говорит - Отлично! И выполняет: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Ну типа так же с цементом и валютой... На каком этапе требуется накат патчей?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 01:25 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Извините, ошибся в атрибутах, следует читать так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 08:45 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperВ который раз прошу Вас озвучить отступление от классических правил РМД. Не хотелось бы объяснять очевидные вещи. Раз вы упомянули Кодда, то классический подход можно выразить через правило№0 Sgt.PepperЭдвард Кодд сказал, что связи реализуются только через FK?.. А разве в современных СУБД есть еще какие-нибудь реализации связи? озвучьте если не трудно. Sgt.PepperЕсли он такого не говорил, то "скорость разработки", "качественное и масштабируемое" решение или финансовые дивиденды участников сделки следует рассматривать в плоскости целесообразности, удобства и т.д., но, возможно, существующие в рамках парадигмы РМД ... Если решение менее качественно, оно остается менее качественным независимо от финансовых дивидендов участников сделки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 11:27 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperА в Ваших "связях" и "ссылках" есть некие допущения, которые сужают РМД Не понимаю, почему чем вам так не угодило слово "ссылка". Вам надеюсь знакомо понятие "ссылочная целостность"? Какое слово лежит в основе? Sgt.Pepper(уж не знаю - по недомыслию или упертости). Знакомо, все кто рассуждают не так как мы, либо недоумки либо упертые бараны )) Sgt.PepperУ Вас зацикленность на FK... Это все равно что сказать строителю: У Вас зацикленность на железобетоне... GoffmanFK - это вырожденная "связь" (или "ссылка" или как еще ни назовите)... В общем случае для "связи" или "ссылки" FK является необходимым условием, но недостаточным, если "связь" или "ссылка" реализована классически, через отношения. Здесь я не очень понял, что вы имеете в виду, если не трудно - поясните, лучше с примером. Sgt.Pepperточки зрения РМД - совсем не обязательный, а как следствие и п.3... Ну и что, делать то его все равно надо, я пытаюсь представить проблему вывода справочника в целом. Sgt.PepperВас не смущает, что даже такие радикалы, как guest_XXXXX, не оспаривают соответствия РМД, а утверждают, что так проектируют только долбо^ебы?... И я с этим утверждением в общем согласен - у этого подхода есть очень ограниченная область применения, но я возражаю, что: - он требует "патчей", изменения схемы и внедрения... - его не следует применять никогда... Ну раз вы в целом с guest_XXXXX согласны, значит не такой уж он и радикал, как вы говорите. Что касается изменения схемы, то выходим на второй круг, как вы сможете добавить специфическое поле в отдельно взятом справочнике, не выводя его из "объединенного справочника"? А вывод справочника в отдельную таблицу - это и есть изменение схемы. Про "его не следует применять никогда..." - в общем то этого никто здесь и не утверждал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 11:58 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanSgt.PepperВ который раз прошу Вас озвучить отступление от классических правил РМД. Не хотелось бы объяснять очевидные вещи. Раз вы упомянули Кодда, то классический подход можно выразить через правило№0 Можно полюбопытствовать, какое нарушение правила, гласящего "реляционная СУБД должна быть способна полностью управлять базой данных, используя связи между данными" допускает подход, в котором данные разных (нескольких) справочников могут храниться в одной таблице? К дизайну физической модели данных это правило не относится. Точно так же оно не относится даже к логической модели данных (с множеством справочников). Перевод логической модели в схему для физического хранения вполне допускает объединение в одной физической таблице нескольких логических сущностей - в данном конкретном случае отдельных атомарных справочников. Если запретить возможность хранения атомарных справочников в одной таблице, разделять "условно ФИО" для мужчин и женщин тоже будем в разные (отдельные!) таблицы?! Смысл, кстати, сугубо тот же самый, что и для "атомарного" справочника... Теперь просто представьте себе кошмар, если пойти по пути Фэйсбука, где, типа, вообще больше 50 "полов" хотят начать использовать, и данные по каждому, типа, "полу" хранятся в разных (и полностью идентичных по структуре) таблицах... Может, все же стоит согласиться, что использование некоторого дескриминатора (разделителя) вполне справляется с этой задачей? Для "условно ФИО" это признак пола, кстати... Кстати... :) Надеюсь, перед постингом этой ссылки Вы прочитали абзац, находящийся непосредственно перед списком правил, которые были предложены в далекой середине 1980-х: В действительности правила столь строги, что все популярные т. н. "реляционные" СУБД не соответствуют многим критериям.Практически, есть только одна причина, по которой (любое) правило не соблюдается - это правило в реальном мире плохо соответствует связаным с ним ожиданиям... GoffmanSgt.PepperЕсли он такого не говорил, то "скорость разработки", "качественное и масштабируемое" решение или финансовые дивиденды участников сделки следует рассматривать в плоскости целесообразности, удобства и т.д., но, возможно, существующие в рамках парадигмы РМД ... Если решение менее качественно, оно остается менее качественным независимо от финансовых дивидендов участников сделки.Вам что больше импонирует - правила, рекомендации или догма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 13:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanSgt.PepperЭдвард Кодд сказал, что связи реализуются только через FK?.. А разве в современных СУБД есть еще какие-нибудь реализации связи? озвучьте если не трудно. )) нелепости... Ключи относятся к ограничениям целостности, а не к связям между типами сущностей... В "современных СУБД" (точнее, СХОД - системах хранения и обработки данных, предназначенных для программистов) связи в принципе не поддерживаются. Они моделируются с помощью элементов структуры (отношений) и ОЦ (ключей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 18:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Goffman Если решение менее качественно, оно остается менее качественным независимо от финансовых дивидендов участников сделки. Угу, т.е. такой параметр как "соотношение цена/качество" Вам не известен. Да и по поводу темы, на протяжении 10 страниц, нигде не определились критерии "качественно - не качественно" по этому вопросу. Поскольку Вы утверждаете, что решение менее качественно, то критерии качества в студию. Только критерии не умозрительные, типа "я так никогда не делаю, поэтому это отстой!", а вполне проверяемые, типа как для автомобилей: Kia = 106 поломки на 100 машин - это качественная машина, а BMW = 114 поломок - остается менее качественной независимо от финансовых дивидендов участников сделки. По поводу Кодда: где в его 13-ти правилах указано, что нужно заколотить парадное и ходить через чёрный ход для каждого справочника требуется создавать отдельную таблицу? Скорее против Вашей точки зрения работает правило №9: Правила .... правило 9: Логическая независимость данных (Logical Data Independence): Представление данных в приложении не должно зависеть от структуры реляционных таблиц . Если в процессе нормализации одна реляционная таблица разделяется на две, представление должно обеспечить объединение этих данных, чтобы изменение структуры реляционных таблиц не сказывалось на работе приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 20:57 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11Скорее против Вашей точки зрения работает правило №9: Правила .... правило 9: Логическая независимость данных (Logical Data Independence): Представление данных в приложении не должно зависеть от структуры реляционных таблиц . Если в процессе нормализации одна реляционная таблица разделяется на две, представление должно обеспечить объединение этих данных, чтобы изменение структуры реляционных таблиц не сказывалось на работе приложений. Иначе говоря, модель представления данных не должна зависеть от логической модели данных))) То есть, под вопрос ставится даже вынужденная структура "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)". Это одна из ключевых проблем, делающая применение РМД бесполезным практически для всех прикладных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 21:59 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
zeon11Поскольку Вы утверждаете, что решение менее качественно, то критерии качества в студию. Ну, возможно, имелось виду большее соответствие структуры БД предметной области. Возможно, это упростит восприятие схемы, декларативные ОЦ и какие-то запросы. zeon11 По поводу Кодда: где в его 13-ти правилах указано, что нужно заколотить парадное и ходить через чёрный ход для каждого справочника требуется создавать отдельную таблицу? Скорее всего, эти правила - все же требования к РСУБД, а не РМД. И потому как бы там про то, чтобы СУБД претендующие на Р, позволяли использовать все достоинства РМД, т.е. не компрометировали ее. В частности, zeon11Скорее против Вашей точки зрения работает правило №9: работает против точек зрения, производителей РСУБД, допускающих отсутствие представлений в их продукте, но возможности присутствия буквы “Р”. Есть у нас приложение и БД. Мы решили сменить имя поля, сделать в реляционной схеме декомпозицию таблиц. Если приложение видит представления, а схему, то код приложений трогать не придется, только изменить приложения. В частности, это преимущество РМД, над ООМД, в которых типа нет представлений. А никак ни разных конкретных РМД, так обе могут юзать это достоинство, если только разработчик РСУБД это обеспечил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 08:58 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
опечатка: "Если приложение видит представления, а схему, то код приложений трогать не придется, только изменить приложения. " следует читать: "Если приложение видит представления, а не таблицы, то код приложений трогать не придется, только изменить представления. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 15:40 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoЕсли приложение видит представления, а не таблицы, то код приложений трогать не придется, только изменить представления. 1) Приложение "видит" совсем другую структуру, имеет дело с другими ОЦ и написано на другом языке. Поскольку не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" то - перманентное программирование. И это (обеспечение программистов работой на всю жизнь) вполне можно отнести к достоинствам реляционной технологии. 2) Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 22:08 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина... не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" ... Надо думать, что ЧАЛОвскую ахинею "не легко разработать" и тем более "повторно применять". К счастью, в этом нет нужды: эпоха РМД а дворе. В МУМПСы и устаревшие идеи 60-х в прошлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 22:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина... не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" ... Надо думать, что ЧАЛОвскую ахинею "не легко разработать" и тем более "повторно применять". К счастью, в этом нет нужды: эпоха РМД а дворе. В МУМПСы и устаревшие идеи 60-х в прошлом. ))) Уточню: 1) Приложение "видит" совсем другую структуру, имеет дело с другими ОЦ и написано на другом языке. Поскольку не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" то - перманентное программирование. И это (обеспечение программистов работой на всю жизнь) вполне можно отнести к достоинствам реляционной технологии. 2) Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". Вы допускаете серьезные ошибки, когда пишете что-то про БД) И когда я Вам на них указываю, обижаетесь, и начинаете писать не по существу) Нечего сказать по существу, так не пишите здесь сообщения... Разумеется эпоха РМД на дворе, и я это ясно подтвердил))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 23:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина Разумеется эпоха РМД на дворе, и я это ясно подтвердил Наконец-то до Вас дошло это через 30 лет. МУМПС здесь подбрасывали вместо РМД. Мешочки, Дореляционную ОМД, объектный нафигатор. Смешно просто вспоминать. Теперь, надеюсь, взялись за ум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 23:36 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина Разумеется эпоха РМД на дворе, и я это ясно подтвердил Наконец-то до Вас дошло это через 30 лет. МУМПС здесь подбрасывали вместо РМД. Мешочки, Дореляционную ОМД, объектный нафигатор. Смешно просто вспоминать. Теперь, надеюсь, взялись за ум. Помимо серьезных технических ошибок, Вы (когда обижаетесь на свое незнание) все время еще и врете))) ))) Вот мой текст: 1) Приложение "видит" совсем другую структуру, имеет дело с другими ОЦ и написано на другом языке. Поскольку не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" то - перманентное программирование. И это (обеспечение программистов работой на всю жизнь) вполне можно отнести к достоинствам реляционной технологии. 2) Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". Вы допускаете серьезные ошибки, когда пишете что-то про БД) И когда я Вам на них указываю, обижаетесь, и начинаете писать не по существу) Нечего сказать по существу, так не пишите здесь сообщения... Разумеется эпоха РМД на дворе, и я это ясно подтвердил))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 14:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина Помимо серьезных технических ошибок, Вы (когда обижаетесь на свое незнание) все время еще и врете))) Просто до Вас не доходит, что Вам пишут. Надо было получать нормальное образование. Бредятина))) Вот мой текст: Не знаю зачем Вы повторяете эту галиматью (включате попугая). В РМД все легче чем где-либо, раз реляционная эпоха. А Вы ея признали. Бредятина1) Приложение "видит" совсем другую структуру, имеет дело с другими ОЦ и написано на другом языке.... . Приложение видит не какую-то "совсем другую структуру", а представление данных БД. Представления об информации в РМД - просто сохраненные запросы на том же языке SQL. Проще некуда. Неужели это так трудно доходит? Хоть Вы и далекий от проектирования БД человек (Вы больше по мешочкам специалист), но все равно могли сообразить уже. Бредятина2) Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". Думаете, что если удалить таблицу, то нельзя изменить представление так чтобы оно возвращало те же колонки, что и до удаления? Типа разоблачили Кодда? 9 правило? Так просто? А все человечество до Вас не додумалось? Рассел просто нервно курит со своим парадоксом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 16:01 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoПросто до Вас не доходит, что Вам пишут. Надо было получать нормальное образование. ))) Врунишка. Вынудил я Вас говорить по существу. И вот традиционное вступление. По отношению к человеку, который понимает лучше других технологию БД)) Это нормальная реакция людей, которые обижаются на свое незнание. vadiminfoНе знаю зачем Вы повторяете эту галиматью (включате попугая). В РМД все легче чем где-либо, раз реляционная эпоха. А Вы ея признали. Пока продолжаете лгать, и ставите себя уже в совершенно глупое положение, так как потом начинаете-таки реагировать на "галиматью" на уровне своих знаний технологии БД))) Вот мой текст: 1) Приложение "видит" совсем другую структуру, имеет дело с другими ОЦ и написано на другом языке. Поскольку не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" то - перманентное программирование. И это (обеспечение программистов работой на всю жизнь) вполне можно отнести к достоинствам реляционной технологии. 2) Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". Вы допускаете серьезные ошибки, когда пишете что-то про БД) И когда я Вам на них указываю, обижаетесь, и начинаете писать не по существу) Нечего сказать по существу, так не пишите здесь сообщения... Разумеется эпоха РМД на дворе, и я это ясно подтвердил))) Здесь только факты. А для многих "любителей" реляционной технологии факты - это галиматья) Это я помню. vadiminfoПриложение видит не какую-то "совсем другую структуру", а представление данных БД. Представления об информации в РМД - просто сохраненные запросы на том же языке SQL. Вы в начале пути понимания реляционной технологии) vadiminfoПроще некуда. Неужели это так трудно доходит? Хоть Вы и далекий от проектирования БД человек (Вы больше по мешочкам специалист), но все равно могли сообразить уже. Очевидная глупость) Если бы все было "проще некуда", то приложение не нужнО (при использовании СУБД именно так и происходит - приложения не нужно программировать). Поскольку при использовании реляционной технологии не легко разработать и повторно применять архитектуру "модель верхнего уровня + маппинг по всем трем аспектам МД + модель нижнего уровня (РМД)" то остается одно - перманентное программирование приложений. И это большая заслуга реляционной технологии для современного "мира отмывания денег"))) vadiminfoДумаете, что если удалить таблицу, то нельзя изменить представление так чтобы оно возвращало те же колонки, что и до удаления? Типа разоблачили Кодда? 9 правило? Так просто? А все человечество до Вас не додумалось? Рассел просто нервно курит со своим парадоксом. Продолжаете игнорировать мой текст и заменяете его ответом на свой собственный вопрос) Вам нужно чиновником работать))) Вот мой текст: Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 18:54 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина Вот мой текст: Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". А я на этот текст и отвечал. Хотя и без ответов очевидно, что таким наивом Кодда могли пытаться критиковать тока начиающие. Тока до Вас доходит. Ваш пример мог опровергать независимость с помощью механизма представлений только, если бы не существовало таких изменений БД, при которых не нужно менять код приложения. Т.е. либо требуемая инфа есть после удаления В, тогда можно изменить запрос представления. Если ее нет, то добавление оной есть изменение БД, а не кода приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2014, 22:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfo, Да я гляжу, тут битва гигантов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 07:42 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
MasterZivvadiminfo, Да я гляжу, тут битва гигантов... Чал пытается подбросить новенькое обоснование "бесполезности РМД". Но если последние годы он пытался преувеличивать и по своему истолковывать известные в литературе недостатки, то теперь он пытается как-то отюзать для этого известные достоинства оной. Т.е. как бы возвращается на круге своя в период с 2004 до бана, когда стремился вызвать максимально возможное недоумение своими текстами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 08:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина Вот мой текст: Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". А я на этот текст и отвечал. Хотя и без ответов очевидно, что таким наивом Кодда могли пытаться критиковать тока начиающие. Тока до Вас доходит. Банальная неправда) Как обычно. Вот Ваш текст (дополненный и исправленный Вами): "Если приложение видит представления, а не таблицы, то код приложений трогать не придется, только изменить представления." Это ошибка, конечно же, и я на нее указал: Код, например, умножающий A на B, конечно не придется трогать после, например, удаления B из таблицы и из представления, если "разработчик РСУБД это обеспечил". vadiminfoВаш пример мог опровергать независимость с помощью механизма представлений только, если бы не существовало таких изменений БД, при которых не нужно менять код приложения. Опять неправда) В Вашем тексте нет слов "в ряде случаев" или других подобных. Вот Ваш текст: "Если приложение видит представления, а не таблицы, то код приложений трогать не придется, только изменить представления." Попутно замечу, что при использовании СУБД, в отличие от реляционных СХОД, код приложения дейстивительно не нужно изменять ни при каких измененниях в схеме БД, просто потому, что приложения просто не нужно программировать)) vadiminfoТ.е. либо требуемая инфа есть после удаления В, тогда можно изменить запрос представления. Если ее нет, то добавление оной есть изменение БД, а не кода приложения. ))))) Итак, Вы продолжаете утверждать, что код, например, умножающий A на B, не придется трогать после, например, удаления B из таблицы и из представления, . Вы дополняете этот простой пример своим собственным примером, в котором атрибут B после удаления непременно должен быть снова добавлен в какую-либо таблицу. Я и говорю, Вам чиновником нужно работать)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 16:20 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoЧал пытается подбросить новенькое обоснование "бесполезности РМД". Умышленная неправда. Обоснование сделано давно и детально (ссылки известны всем заинтересованным) и опровергнуть его просто невозможно. vadiminfoНо если последние годы он пытался преувеличивать и по своему истолковывать известные в литературе недостатки, то теперь он пытается как-то отюзать для этого известные достоинства оной. Т.е. как бы возвращается на круге своя в период с 2004 до бана, когда стремился вызвать максимально возможное недоумение своими текстами. Глупости из-за неспособности вести обсуждение по существу))) Где преувеличение?) Что означает "известные в литературе"?))) А на практике их как бы нет? Какие достоинства? У реляционной технологии нет ни одного достоинства, присущего именно ей. Это факт, хорошо известный не только в литературе. Надо банить ЧАЛа) Это тоже факт. Какое недоумение?)) Вы о том, что мало кто знаком с технологией БД? Потому что большинство знакомо только с ее глубоко ошибочной и незначительной веткой - реляционной технологией? И поэтому факты технологии БД вызывают у большинства недоумение?)) Это не беда. Было бы желание разобраться в предмете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 16:50 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина... Вы продолжаете утверждать, что код, например, умножающий A на B, не придется трогать после, например, удаления B из таблицы и из представления, . ... атрибут ... добавлен в какую-либо таблицу. А по Вашему изменение таблицы это изменение кода? Т.е. "Вы продолжаете утверждать, что" не смотря на то что "атрибут ... добавлен в какую-либо таблицу" придется еще и код менять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 17:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаКакое недоумение?)) после которого мы с Вами пришли к вызывающему доверие выводу, что БредятинаДо таких идиотов, как я, конечно, не доходит)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 17:37 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина... Вы продолжаете утверждать, что код, например, умножающий A на B, не придется трогать после, например, удаления B из таблицы и из представления, . ... атрибут ... добавлен в какую-либо таблицу. А по Вашему изменение таблицы это изменение кода? Т.е. "Вы продолжаете утверждать, что" не смотря на то что "атрибут ... добавлен в какую-либо таблицу" придется еще и код менять? ))) Атрибут удален, а не добавлен. Вот мой текст: ))))) Итак, Вы продолжаете утверждать, что код, например, умножающий A на B, не придется трогать после, например, удаления B из таблицы и из представления,. Вы дополняете этот простой пример своим собственным примером, в котором атрибут B после удаления непременно должен быть снова добавлен в какую-либо таблицу. Я и говорю, Вам чиновником нужно работать)) Вы ведете себя просто не прилично) Я всегда точно цитирую оппонента, а Вы умышленно выдергиваете куски какие-то. Большинству читателей, конечно, безразлична теория и практика БД, и они не обратят внимание на Ваше умышленное нежелание писать по существу. Я пишу здесь сообщения, и детально рассматриваю каждый вопрос ради тех немногих участников форума, которые искренне хотят изучать технологию БД. Не пишите сообщения, если не хотите обсуждать по существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 20:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаКакое недоумение?)) после которого мы с Вами пришли к вызывающему доверие выводу, что БредятинаДо таких идиотов, как я, конечно, не доходит)) )))) То есть после удаления атрибута B из таблицы и представления Вы все равно будете в коде умножать A на B? Я так и знал)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 20:43 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина))) Атрибут удален, а не добавлен.. А что БД не позволяет добавлять атрибуты? Раз код менять не надо, а только БД, то наличие механизма независимости на лицо. БредятинаТо есть после удаления атрибута B из таблицы и представления Вы все равно будете в коде умножать A на B? Да я то вообще в представлении умножу, в коде тока селект из этого представления. Спасибо Кодду. БредятинаБольшинству читателей, конечно, безразлична теория и практика БД, С Вашим уровнем и доходчивостью, только о "теория и практика БД" у других беспокоиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 21:35 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина))) Атрибут удален, а не добавлен.. А что БД не позволяет добавлять атрибуты? Раз код менять не надо, а только БД, то наличие механизма независимости на лицо. Назойливая глупость, основанная на умышленно неверном цитировании. Но это же не позволит завуалировать Вашу ошибку в исходном сообщении, основанную на непонимании реляционной технологии. ))) Атрибут удален, а не добавлен. Вот мой текст: ))))) Итак, Вы продолжаете утверждать, что код, например, умножающий A на B, не придется трогать после, например, удаления B из таблицы и из представления,. Вы дополняете этот простой пример своим собственным примером, в котором атрибут B после удаления непременно должен быть снова добавлен в какую-либо таблицу. Я и говорю, Вам чиновником нужно работать)) Вы ведете себя просто не прилично) Я всегда точно цитирую оппонента, а Вы умышленно выдергиваете куски какие-то. Большинству читателей, конечно, безразлична теория и практика БД, и они не обратят внимание на Ваше умышленное нежелание писать по существу. Я пишу здесь сообщения, и детально рассматриваю каждый вопрос ради тех немногих участников форума, которые искренне хотят изучать технологию БД. Не пишите сообщения, если не хотите обсуждать по существу. vadiminfoБредятинаТо есть после удаления атрибута B из таблицы и представления Вы все равно будете в коде умножать A на B? Да я то вообще в представлении умножу, в коде тока селект из этого представления. Спасибо Кодду. Умышленная глупость. В БД (и в таблице, и в представлении) B удален. А в коде осталось умножение на B. Вы что, даже не ощущаете как выглядите со стороны?)) vadiminfoС Вашим уровнем и доходчивостью, только о "теория и практика БД" у других беспокоиться. )))) То есть после удаления атрибута B из таблицы и представления Вы все равно будете в коде умножать A на B? Я так и знал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 13:54 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаВ БД (и в таблице, и в представлении) B удален. А в коде осталось умножение на B. В БД добавли необходимую для клиента информацию и переписали представление так, чтобы в коде ничего не изменилось. Изменения в БД? В БД. Код менять не надо? Не надо. Все. В этом одно из важных достоинств РМД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 15:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаВ БД (и в таблице, и в представлении) B удален. А в коде осталось умножение на B. В БД добавли необходимую для клиента информацию и переписали представление так, чтобы в коде ничего не изменилось. Изменения в БД? В БД. Код менять не надо? Не надо. Все. В этом одно из важных достоинств РМД. Умышленная глупость. В БД (и в таблице, и в представлении) B удален. А в коде осталось умножение на B. Вы настойчиво предлагаете обратить внимание на фундаментальный недостаток реляционной технологии - невозможность изменить код приложения. И чтобы код (заметим, уже никому не нужный) продолжал работать необходимо: 1) снова добавить B в какую-нибудь таблицу БД (вероятно, Кодд рекумендует создать специальную таблицу для такого рода ненужных атрибутов)))) 2) переписать код представления, чтобы в нем остался B; 3) переписать код интерфейса, чтобы результат умножения А на B нигде не отображался. Не проще ли честно сказать: реляционная технология предполагает запрет на удаление атрибутов?))) И это одно из "важных достоинств РМД". Приходится с юмором воспринимать Вашу настойчивую глупость. На самом деле перманентное изменение кода по любому поводу - это одно из важных "достоинств" РМД, дающее работу армии программистов) В случае использования СУБД приложение просто не нужно программировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 16:46 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина В случае использования СУБД приложение просто не нужно программировать. А что на B надо умножать (а не делить, скажем) - эта "СУБД Бредятины"(tm) сама догадается? Телепатически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 16:58 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
офф: Бредятина, Вы женаты ? Дети есть ? :) Чисто интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 17:07 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинБредятина В случае использования СУБД приложение просто не нужно программировать. А что на B надо умножать (а не делить, скажем) - эта "СУБД Бредятины"(tm) сама догадается? Телепатически? ))) Примитивное смешивание. Речь ведь шла о приложениях, код которых, якобы, не изменяется. Очевидно, что если приложение есть, то его код должен быть изменен при определенных изменениях в схеме БД (и я привел тривиальный пример). Если приложения нет, то его код даже теоретически не может быть изменен)) Вероятно, Вы хотели сказать, что и в случае реляционной технологии можно обойтись без приложения (умножать A на B на уровне БД, а когда B удаляется - не умножать на уровне БД). Однако, семантическая бедность РМД не позволяет обойтись без приложения даже в простых случаях. Это просто факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 18:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSVофф: Бредятина, Вы женаты ? Дети есть ? :) Чисто интересно. Вы настолько не образованы, что не знаете даже таких примитивных вещей???:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 18:39 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаВы настойчиво предлагаете обратить внимание на фундаментальный недостаток реляционной технологии - невозможность изменить код приложения. И чтобы код (заметим, уже никому не нужный) продолжал работать необходимо: 1) снова добавить B в какую-нибудь таблицу БД ... 2) переписать код представления, чтобы в нем остался B; . Это до Вас наконец дошло, что может означать: "В БД добавили необходимую для клиента информацию и переписали представление"? Да Вы просто на лету схватываете. Бредятина3) переписать код интерфейса, чтобы результат умножения А на B нигде не отображался. зачем же Вы делали пп 1 , 2 если, оказывается, было нужно чтобы "результат умножения А на B нигде не отображался"? Да уж, тот еще тЭортик. В конце концов, можно было тока пп 2 выполнить, чтобы нули отображались, чтобы код не менять. Все равно Ваши проекты, судя по всему, времен СМ-4. Бредятина На самом деле перманентное изменение кода по любому поводу - это одно из важных "достоинств" РМД, . 9 правило Вам разжевать, скорее всего, не возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 18:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаВы настойчиво предлагаете обратить внимание на фундаментальный недостаток реляционной технологии - невозможность изменить код приложения. И чтобы код (заметим, уже никому не нужный) продолжал работать необходимо: 1) снова добавить B в какую-нибудь таблицу БД ... 2) переписать код представления, чтобы в нем остался B; . Это до Вас наконец дошло, что может означать: "В БД добавили необходимую для клиента информацию и переписали представление"? Да Вы просто на лету схватываете. Вам что, действительно не стыдно?)) Люди же некоторые читают)) Вы что всерьез восприняли эту "рекомендацию Кодда"?))) То есть, получается, что Вы идиот? Я в это не верю, честно говоря. Убежден, что Вы нормальный непорядочный человек) vadiminfoБредятина3) переписать код интерфейса, чтобы результат умножения А на B нигде не отображался. зачем же Вы делали пп 1 , 2 если, оказывается, было нужно чтобы "результат умножения А на B нигде не отображался"? Да уж, тот еще тЭортик. Не мы, а Вы)) Вы уже просто не знаете, как выйти из положения, и вместо того, чтобы признать, что код приложения меняется при определенных изменениях в схеме БД, продолжаете откровенно глупить)) vadiminfoВ конце концов, можно было тока пп 2 выполнить, чтобы нули отображались, чтобы код не менять. Все равно Ваши проекты, судя по всему, времен СМ-4. Глупышка)) Ни в таблице, ни в представлении нет В, какой еще п. 2) без п. 1)?))) vadiminfoБредятина На самом деле перманентное изменение кода по любому поводу - это одно из важных "достоинств" РМД, . 9 правило Вам разжевать, скорее всего, не возможно. Вы просто хам, это Вы уже хорошо здесь всем разжевали)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 18:51 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаLSVофф: Бредятина, Вы женаты ? Дети есть ? :) Чисто интересно.Вы настолько не образованы, что не знаете даже таких примитивных вещей???:)Простите, но соотв.статьи в Википедии не нашел. Может подскажете ? Хочу составить психологический портрет акцентуированной личности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 19:15 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSVБредятинапропущено... Вы настолько не образованы, что не знаете даже таких примитивных вещей???:)Простите, но соотв.статьи в Википедии не нашел. Может подскажете ? Хочу составить психологический портрет акцентуированной личности. Не ожидал, что Вы так легко дадите утвердительный ответ) В сочетании с тем, что технология БД Вам не интересна, это даже не знаю как называется в психологии)) А Вашу идею про ключи я оценил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 21:09 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаТо есть, получается, что Вы идиот? Вроде как бы мы согласились, что БредятинаДо таких идиотов, как я, конечно, не доходит)) БредятинаУбежден, что Вы нормальный непоря И Вам, подлецу, не хворать. Бредятина Вы уже просто не знаете, как выйти из положения, и вместо того, чтобы признать, что код приложения меняется при определенных изменениях в схеме БД, продолжаете откровенно глупить)) Менялась только БД в моих ответах. Код не менялся. Просто до Вас не дошло в виду особенностей Вашего интеллекта. Бредятина Вы просто хам, это Вы уже хорошо здесь всем разжевали)) Ну так кажный может, кажный. Вы не просто хам, а еще и вернулись под другим ником после бана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 22:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаНе ожидал, что Вы так легко дадите утвердительный ответ) В сочетании с тем, что технология БД Вам не интересна, это даже не знаю как называется в психологии)) А Вашу идею про ключи я оценил.Я задавал вопрос, а не давал ответ. :) Из ваших уст мне технология БД неинтересна, т.к. в Вашем изложении она не имеет никакой практической ценности (и не только для меня). зы: Какие ключи ? Какая идея ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 12:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаТо есть, получается, что Вы идиот? Вроде как бы мы согласились, что БредятинаДо таких идиотов, как я, конечно, не доходит)) БредятинаУбежден, что Вы нормальный непоря И Вам, подлецу, не хворать. Итак, Вы согласились со своей ошибкой в привычной форме))) vadiminfoБредятина Вы уже просто не знаете, как выйти из положения, и вместо того, чтобы признать, что код приложения меняется при определенных изменениях в схеме БД, продолжаете откровенно глупить)) Менялась только БД в моих ответах. Код не менялся. Просто до Вас не дошло в виду особенностей Вашего интеллекта. Ложь. Вы ни разу не дали ответа по примеру, а заменяли его собственным примером. Трусишка))) Бредятина Вы просто хам, это Вы уже хорошо здесь всем разжевали)) Ну так кажный может, кажный. Вы не просто хам, а еще и вернулись под другим ником после бана.[/quot] Не верно) Напомню: Итак, Вы продолжаете утверждать, что код, например, умножающий A на B, не придется трогать после, например, удаления B из таблицы и из представления,. Вы дополняете этот простой пример своим собственным примером, в котором атрибут B после удаления непременно должен быть снова добавлен в какую-либо таблицу. Я и говорю, Вам чиновником нужно работать)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 15:45 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
LSVБредятинаНе ожидал, что Вы так легко дадите утвердительный ответ) В сочетании с тем, что технология БД Вам не интересна, это даже не знаю как называется в психологии)) А Вашу идею про ключи я оценил.Я задавал вопрос, а не давал ответ. :) Из ваших уст мне технология БД неинтересна, т.к. в Вашем изложении она не имеет никакой практической ценности (и не только для меня). зы: Какие ключи ? Какая идея ? Вы давали ответ. Задать вопрос Вы не можете, поскольку технология БД Вам не интересна и не знакома (и не только Вам))). А Вашу идею про ключи я оценил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 15:47 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина Вы дополняете этот простой пример своим собственным примером, в котором атрибут B после удаления непременно должен быть снова добавлен в какую-либо таблицу. А где в Вашем примере, говорится что нельзя добавлять атрибут B? Что за СУБД такая? Это же изменение БД, а не кода. Впрочем, до Вас в принципе не доходит, что правило 9 никак не ограничивает имения БД. Но, я говорил, про наличие информации для приложения в БД после любых изменений, если нужен достоверный результат (тоже не доходит). Если не нужен, достоверный, то напишите в представлении, что В = 4 (намек на СМ-4). Даже в этом случае польза от правила 9 есть для незадачливых слоев населения. Вы б еще колеса удалили у авто, а потом руль винили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 18:58 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина Вы дополняете этот простой пример своим собственным примером, в котором атрибут B после удаления непременно должен быть снова добавлен в какую-либо таблицу. А где в Вашем примере, говорится что нельзя добавлять атрибут B? Что за СУБД такая? Это же изменение БД, а не кода. Впрочем, до Вас в принципе не доходит, что правило 9 никак не ограничивает имения БД. Но, я говорил, про наличие информации для приложения в БД после любых изменений, если нужен достоверный результат (тоже не доходит). Если не нужен, достоверный, то напишите в представлении, что В = 4 (намек на СМ-4). Даже в этом случае польза от правила 9 есть для незадачливых слоев населения. Вы б еще колеса удалили у авто, а потом руль винили. ))) Вы знаете, хотя для окружающих это и выглядит нелепо, но я, все-таки, полагаю, что Вы искренне все это пишите... То есть: 1) написали (для реляционной БД) некое приложение (уже сейчас понятно, что его не нужно было писать!), для реализации неких функций F1 и F2; 2) функция F2 (прототип умножения A на B), и соответствующие данные (атрибут B) оказались ненужными; 3) а функции F3 и F4, и соответствующие им данные, наоборот, нужно добавить; 4) разумеется при использовании СУБД, приложения нет, и его не нужно изменять)) 5) однако, Вы доказываете, что и при использовании реляционной СХОД приложение, написанное для F1 и F2 останется неизменным для F1, F3, F4 (тогда Ваше исходное утверждение, что код приложения никогда не нужно изменять - вернО)! 6) разумно предположить, что если надобность в функции F1 отпадет, но появится необходимость реализовать F5 и F6, код не нужно менять! 7) следовательно, исходный код вполне мог представлять собой "write Привет, мир")) Другими словами, код вообще был не нужен. 8) это меняет дело, как минимум, во-первых, всем новым участникам форума нужно наглядно пояснять, что приложения БД не нужно программировать при использовании реляционных систем, и, во-вторых, реляционные СХОД - полноценные СУБД, обладающие семантически развитой моделью данных и интерактивным интерфейсом, исключающим программирование приложений! Так это же хорошо) Значит договорились, в конце концов))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 19:33 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Только вот это несколько смущает vadiminfoВы б еще колеса удалили у авто, а потом руль винили. Приравнивание удаления атрибута отношения к удалению колес у авто)) Получается, что в случае удаления атрибута реляционная система прекратит функционировать(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 19:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина То есть: 1) написали (для реляционной БД) некое приложение (уже сейчас понятно, что его не нужно было писать!), для реализации неких функций F1 и F2; 2) функция F2 (прототип умножения A на B), и соответствующие данные (атрибут B) оказались ненужными; 3) а функции F3 и F4, и соответствующие им данные, наоборот, нужно добавить; 4) разумеется при использовании СУБД, приложения нет, и его не нужно изменять)) 5) однако, Вы доказываете, что и при использовании реляционной СХОД приложение, написанное для F1 и F2 останется неизменным для F1, F3, F4 (тогда Ваше исходное утверждение, что код приложения никогда не нужно изменять - вернО)! 6) разумно предположить, что если надобность в функции F1 отпадет, но появится необходимость реализовать F5 и F6, код не нужно менять! 7) следовательно, исходный код вполне мог представлять собой "write Привет, мир")) Другими словами, код вообще был не нужен. 8) это меняет дело, как минимум, во-первых, всем новым участникам форума нужно наглядно пояснять, что приложения БД не нужно программировать при использовании реляционных систем, и, во-вторых, реляционные СХОД - полноценные СУБД, обладающие семантически развитой моделью данных и интерактивным интерфейсом, исключающим программирование приложений! Так это же хорошо) Значит договорились, в конце концов))) Ахинея. Вы пытались отрицать одно из достоинств РМД -9 правило. Для этого пытались придумать тЭоретичский пример. Но получилось что-то не про логическую независимость, а про траблы с обеспечением достоверности данных в БД, связанные, по видимому, с маргинальностью не то разработки, не то сопровождения (просто "удалено" - все что могут). Надо было пример придумывать, когда структура БД достоверна (вся инфа есть, модль адекватна), с представлениями траблы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 20:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина Получается, что в случае удаления атрибута реляционная система прекратит функционировать(( Нет. Получатся, что "случае удаления атрибута" его в запросе нельзя будет использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 20:24 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoНет. Получатся, что "случае удаления атрибута" его в запросе нельзя будет использовать Или его значение будет null или default. Не так все однозначно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 09:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
_модvadiminfoНет. Получатся, что "случае удаления атрибута" его в запросе нельзя будет использовать Или его значение будет null или default. Не так все однозначно. Имеется в иду чтобы получить достоверные данные. Т.е. если атрибут "Зарплата" и у Сидорова была 120000, и атрибут "Зарплата" удалили, и стало быть информацию. Если же достоверность не нужна, то можно написать в запросе "Пошел ... У нас обеТ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 09:44 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfo можно написать в запросе "Пошел ... У нас обеТ". Это значение по умолчанию :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 11:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина То есть: 1) написали (для реляционной БД) некое приложение (уже сейчас понятно, что его не нужно было писать!), для реализации неких функций F1 и F2; 2) функция F2 (прототип умножения A на B), и соответствующие данные (атрибут B) оказались ненужными; 3) а функции F3 и F4, и соответствующие им данные, наоборот, нужно добавить; 4) разумеется при использовании СУБД, приложения нет, и его не нужно изменять)) 5) однако, Вы доказываете, что и при использовании реляционной СХОД приложение, написанное для F1 и F2 останется неизменным для F1, F3, F4 (тогда Ваше исходное утверждение, что код приложения никогда не нужно изменять - вернО)! 6) разумно предположить, что если надобность в функции F1 отпадет, но появится необходимость реализовать F5 и F6, код не нужно менять! 7) следовательно, исходный код вполне мог представлять собой "write Привет, мир")) Другими словами, код вообще был не нужен. 8) это меняет дело, как минимум, во-первых, всем новым участникам форума нужно наглядно пояснять, что приложения БД не нужно программировать при использовании реляционных систем, и, во-вторых, реляционные СХОД - полноценные СУБД, обладающие семантически развитой моделью данных и интерактивным интерфейсом, исключающим программирование приложений! Так это же хорошо) Значит договорились, в конце концов))) Ахинея. Вы пытались отрицать одно из достоинств РМД -9 правило. Для этого пытались придумать тЭоретичский пример. Но получилось что-то не про логическую независимость, а про траблы с обеспечением достоверности данных в БД, связанные, по видимому, с маргинальностью не то разработки, не то сопровождения (просто "удалено" - все что могут). Надо было пример придумывать, когда структура БД достоверна (вся инфа есть, модль адекватна), с представлениями траблы. Наивно (но, я продолжаю считать, что совершенно искренне))). Мне нет нужды пытаться что-то отрицать. Я говорю по существу, чтобы всем было понятно о чем речь, а Вы опять уходите от существа вопроса. Итак, где конкретно ахинея? Пп. 1-4 - банальные факты. Значит ахинея начинается с п. 5), когда я вынужден описывать Ваши идеи, потому что Вы отказываетесь сделать это самостоятельно. Итак, отвечайте конкретно: 1) написали (для реляционной БД) некое приложение (уже сейчас понятно, что его не нужно было писать!), для реализации неких функций F1 и F2; 2) функция F2 (прототип умножения A на B), и соответствующие данные (атрибут B) оказались ненужными; 3) а функции F3 и F4, и соответствующие им данные, наоборот, нужно добавить; 4) разумеется при использовании СУБД, приложения нет, и его не нужно изменять)) 5) однако, Вы доказываете, что и при использовании реляционной СХОД приложение, написанное для F1 и F2 останется неизменным для F1, F3, F4 (тогда Ваше исходное утверждение, что код приложения никогда не нужно изменять - вернО)! 6) разумно предположить, что если надобность в функции F1 отпадет, но появится необходимость реализовать F5 и F6, код не нужно менять! 7) следовательно, исходный код вполне мог представлять собой "write Привет, мир")) Другими словами, код вообще был не нужен. 8) это меняет дело, как минимум, во-первых, всем новым участникам форума нужно наглядно пояснять, что приложения БД не нужно программировать при использовании реляционных систем, и, во-вторых, реляционные СХОД - полноценные СУБД, обладающие семантически развитой моделью данных и интерактивным интерфейсом, исключающим программирование приложений! Так это же хорошо) Значит договорились, в конце концов))? Или Вы передумали, и считаете, что: 1. Приложения, все-таки, нужно писать, когда используется реляционная система. 2. Но код приложения никогда не придется переписывать. ? Приходится рассуждать за Вас. Вероятно, Вы имеете в виду, что при изменениях в схеме данных пишутся каждый раз новые приложения, и, следовательно, код написанного ранее приложения никогда не изменяется))) Тогда Вы абсолютно правы. В таком случае я с Вами согласен полностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 13:40 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина Получается, что в случае удаления атрибута реляционная система прекратит функционировать(( Нет. Получатся, что "случае удаления атрибута" его в запросе нельзя будет использовать Следовательно, Вы ошиблись, сравнив удаление атрибута со снятием колес с автомобиля, и поставив, тем самым, под сомнение реляционную технологию)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 13:43 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаИтак, где конкретно ахинея? Как где? Там всякая галиматься типа: "разумеется при использовании СУБД, приложения нет", "СХОД...." и т.п. Вот еще: Бредятина"тогда Ваше исходное утверждение, что код приложения никогда не нужно изменять - вернО" Нет. Речь шла о пояснении правила 9. Не нужно менять, если юзаются представления (подразмевается естественно что данные для приложения нужны те же), при изменении структуры БД. Это противопоставляется случаям, когда в приложении используются непосредственно таблицы, и не претендует всещности типа "никогда". БредятинаИли Вы передумали, и считаете, что: 1. Приложения, все-таки, нужно писать, когда используется реляционная система. 2. Но код приложения никогда не придется переписывать. 1.Код приложения придется писать, если не юзаются языки генерирующие оный. 2.Не никогда, но, например, тогда, когда это позволяет правило 9 Кодда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 14:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаИтак, где конкретно ахинея? Как где? Там всякая галиматься типа: "разумеется при использовании СУБД, приложения нет", "СХОД...." и т.п. )))) Итак, Вы заменили "ахинею" на "галиматью", а ниже начали, наконец-то, говорить по существу. К чему Вас вынудила именно эта "ахинея-галиматья". Попутно Вы согласились, что реляционные СХОД не обладают семантически развитой МД и интерактивным интерфейсом, и, следовательно, их применение приводит к перманентному программированию приложений. vadiminfoБредятина"тогда Ваше исходное утверждение, что код приложения никогда не нужно изменять - вернО" Нет. Речь шла о пояснении правила 9. Не нужно менять, если юзаются представления (подразмевается естественно что данные для приложения нужны те же), при изменении структуры БД. Это противопоставляется случаям, когда в приложении используются непосредственно таблицы, и не претендует всещности типа "никогда". Первая попытка исправить свою ошибку)) И, конечно, неудачная. Данные нужны те же! Замечательно) Итак, речь идет о правильном проектировании БД (нормализации) ПОСЛЕ НАПИСАНИЯ КОДА ПРИЛОЖЕНИЯ. Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код (интересно - что это за код, неужели, отчет?))) 3. Нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду, как мы увидим ниже - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) vadiminfoБредятинаИли Вы передумали, и считаете, что: 1. Приложения, все-таки, нужно писать, когда используется реляционная система. 2. Но код приложения никогда не придется переписывать. 1.Код приложения придется писать, если не юзаются языки генерирующие оный. 2.Не никогда, но, например, тогда, когда это позволяет правило 9 Кодда. Правило 9 Кодда ничего не может позволять или не позволять. Я думаю пришло время познакомить Вас с этим правилом. Dr. E. F. Codd's 12 rules for defining a fully relational database Note that based on these rules there is no fully relational database management system available today. In particular, rules 6, 9, 10, 11 and 12 are difficult to satisfy. ... 9. Logical Data Independence Application programs and terminal activities remain logically unimpaired when information preserving changes of any kind that theoretically permit unimpairment are made to the base tables. Прикладные программы и утилиты для работы с данными должны на логическом уровне оставаться нетронутыми при внесении в базовые таблицы любых изменений, которые теоретически позволяют сохранить нетронутыми содержащиеся в этих таблицах данные. Вы понимаете, что: 1) это замечательное пожелание не имеет ровно никакого отношения к какой-либо конкретной МД (замените таблицы - кстати, раз таблицы, то уже не РБД - на классы, иерархии, объекты, и ничего не изменится в этом пожелании, оно останется таким же "теоретически полезным"). 2) и не имеет абсолютно никакого практического значения при использовании СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 22:07 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина)))) Итак, Вы заменили "ахинею" на "галиматью"... Ну, скорее всего, то и другое хорошо подходит к Вашим мыстлям. Бредятина это замечательное пожелание не имеет ровно никакого отношения к какой-либо конкретной МД . Это существенное достоинство относят, в частности, к РМД, (возможно, оно может относиться и к другим типам МД), поскольку, например, во многих ООСУБД она не реализована. Так написано у Коннолли. Вроде, этому препятствует инкапсуляция. Не помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 22:37 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина, ну кодд как умный чек пытался ограничить доступ приложению к БД интерфейсным слоем в виде хранимок и вьюшек а то при имеющейся всеядности СКЛ и рыхлости структур приложение от БД камня на камне не оставит или вездесущий ДБА загнобит любое приложение а то что логический слой (интерфейс) должен фурычить независимо от изменений в нижнх слоях и до кодда все знали (договор дороже денег) и пофиг рмд тут или ммм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 23:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRos...в виде хранимок и вьюшек... хранимки - в этом плане можно рассматривать в общем случае как часть кода приложения, т.е. они тоже могут видеть только вьюшки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 08:41 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина)))) Итак, Вы заменили "ахинею" на "галиматью"... Ну, скорее всего, то и другое хорошо подходит к Вашим мыстлям. И к мыслям Кодда... И опять ни слова по существу рассмотренных конкретных примеров)) Зачем же Вы отвечаете на "ахинею" и "галиматью"?) vadiminfoБредятина это замечательное пожелание не имеет ровно никакого отношения к какой-либо конкретной МД . Это существенное достоинство относят, в частности, к РМД, (возможно, оно может относиться и к другим типам МД), поскольку, например, во многих ООСУБД она не реализована. Так написано у Коннолли. Вроде, этому препятствует инкапсуляция. Не помню. Какое достоинство? При чем здесь реализация? Что именно не реализовано? Если Вы добавите в класс еще сотню свойств, то нужно код приложения переписывать??? Тогда это просто не СУБД, зачем об этом говорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 12:45 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosну кодд как умный чек пытался ограничить доступ приложению к БД интерфейсным слоем в виде хранимок и вьюшек Нет, не пытался. Ни слова нет в статье про реализацию. Это заказная статья, вызывающая лишь академический интерес. ViPRosа то при имеющейся всеядности СКЛ и рыхлости структур приложение от БД камня на камне не оставит или вездесущий ДБА загнобит любое приложение Есть триада Структура-ОЦ-Язык_манипулирования. Они должны обеспечивать (см. другие правила Кодда). Если у структуры "рыхлость", а у языка манипулирования "всеядность", то нужно что-то в них подправить))) ViPRosа то что логический слой (интерфейс) должен фурычить независимо от изменений в нижнх слоях и до кодда все знали (договор дороже денег) и пофиг рмд тут или ммм независимо от изменений в нижних слоях, которые "оставляют нетронутыми содержащиеся в этих таблицах данные"))) Абсолютно никакого практического значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 12:54 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаИ к мыслям Кодда... К мыслям Кодда не это не относится. Его мысли в отличии от Ваших достойны всяческого уважения: так что попытки поставить Вашими мысли и его на один уровень не уместны. БредятинаКакое достоинство? Ну раз до Вас до сих пор не дошло, то Вы превзошли в скорости схватывания самого себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:02 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаИ к мыслям Кодда... К мыслям Кодда не это не относится. Его мысли в отличии от Ваших достойны всяческого уважения: так что попытки поставить Вашими мысли и его на один уровень не уместны. Приходится уточнять: Данные нужны те же! Замечательно) Итак, речь идет о правильном проектировании БД (нормализации) ПОСЛЕ НАПИСАНИЯ КОДА ПРИЛОЖЕНИЯ. Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код (интересно - что это за код, неужели, отчет?))) 3. Нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду, как мы увидим ниже - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) БредятинаКакое достоинство? Ну раз до Вас до сих пор не дошло, то Вы превзошли в скорости схватывания самого себя.[/quot] Пока, не дошло до Вас)) Повторю: Dr. E. F. Codd's 12 rules for defining a fully relational database Note that based on these rules there is no fully relational database management system available today. In particular, rules 6, 9, 10, 11 and 12 are difficult to satisfy. ... 9. Logical Data Independence Application programs and terminal activities remain logically unimpaired when information preserving changes of any kind that theoretically permit unimpairment are made to the base tables. Прикладные программы и утилиты для работы с данными должны на логическом уровне оставаться нетронутыми при внесении в базовые таблицы любых изменений, которые теоретически позволяют сохранить нетронутыми содержащиеся в этих таблицах данные. Вы понимаете, что: 1) это замечательное пожелание не имеет ровно никакого отношения к какой-либо конкретной МД (замените таблицы - кстати, раз таблицы, то уже не РБД - на классы, иерархии, объекты, и ничего не изменится в этом пожелании, оно останется таким же "теоретически полезным"). 2) и не имеет абсолютно никакого практического значения при использовании СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:09 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаПока, не дошло до Вас... Я от этого достоинства поимел уже много пользы и надеюсь далее иметь. В связи с чем благодарен Кодду о запрете РСУБД не поддерживать механизм представлений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:13 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаПока, не дошло до Вас... Я от этого достоинства поимел уже много пользы и надеюсь далее иметь. В связи с чем благодарен Кодду о запрете РСУБД не поддерживать механизм представлений. Конечно, конечно)) А теперь по существу. Данные нужны те же! Замечательно) Итак, речь идет о правильном проектировании БД (нормализации) ПОСЛЕ НАПИСАНИЯ КОДА ПРИЛОЖЕНИЯ. Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код (интересно - что это за код, неужели, отчет?))) 3. Нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду, как мы увидим ниже - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:15 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаИтак, речь идет о правильном проектировании БД Не о проектировании БД, а о юзании механизма представлений. Приложение видит SLECT ... FROM ИМЯ_ПРЕДСТАВЛЕНИЯ. Запрос представления код не видит. В результате чего в случае изменений БД (конечно не уничтожаюх инфу, удаления самоейи БД и т.п.) или просто изменения запроса в связи с производительностью, ничего менять в приложении (ях) не надо. Ну если и теперь не дошло, то я не знау. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаИтак, речь идет о правильном проектировании БД Не о проектировании БД, а о юзании механизма представлений. Приложение видит SLECT ... FROM ИМЯ_ПРЕДСТАВЛЕНИЯ. Запрос представления код не видит. В результате чего в случае изменений БД (конечно не уничтожаюх инфу, удаления самоейи БД и т.п.) или просто изменения запроса в связи с производительностью, ничего менять в приложении (ях) не надо. Ну если и теперь не дошло, то я не знау. Спасибо))) Дошло! А теперь по существу. Данные нужны те же! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код (интересно - что это за код, неужели, отчет?))) 3. Нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:38 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаСпасибо))) Дошло! Да не за что. БредятинаА теперь по существу. Так то что до Вас дошло и было по существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 13:49 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина, ну че ты переписан код представление, а имя, аргументы и типа возврата остались те же значит приложение не изменилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 16:28 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаСпасибо))) Дошло! Да не за что. БредятинаА теперь по существу. Так то что до Вас дошло и было по существу. Нет, это: Dr. E. F. Codd's 12 rules for defining a fully relational database Note that based on these rules there is no fully relational database management system available today. In particular, rules 6, 9, 10, 11 and 12 are difficult to satisfy. ... 9. Logical Data Independence Application programs and terminal activities remain logically unimpaired when information preserving changes of any kind that theoretically permit unimpairment are made to the base tables. Прикладные программы и утилиты для работы с данными должны на логическом уровне оставаться нетронутыми при внесении в базовые таблицы любых изменений, которые теоретически позволяют сохранить нетронутыми содержащиеся в этих таблицах данные. --- не по существу. Если не можете ничего сказать, так не пишите здесь сообщения. Итак, по существу: Данные нужны те же! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код (интересно - что это за код, неужели, отчет?))) 3. Нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 21:29 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятина, ну че ты переписан код представление, а имя, аргументы и типа возврата остались те же значит приложение не изменилось Пожалуйста, не нужно повторять очевидные вещи. Говорите по существу: Данные нужны те же! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код (интересно - что это за код, неужели, отчет?))) 3. Нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) --- Я же не специально привожу примеры, которые постоянно не устраивают vadiminfo, и он медленно, но верно, развенчивает миф будто в реляционной технологии есть какой-то смысл))) И выхода у него нет. Либо ёрничать и хамить, либо писать правду о реляционной технологии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 21:34 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Почему я привел такой пример. Дейт: "Ключевой вопрос здесь состоит в том, возможно ли однозначное отображение между версией базы данных после реструктуризации и ее исходной версией (т.е. обратима ли выполненная реструктуризация базы данных). Другими словами, вопрос заключается в том, являются ли эти две версии базы данных информационно эквивалентными . Если нет, то совершенно очевидно, что логическая независимость от данных не будет достигнута." В моем последнем примере базы до и после реструктуризации информационно эквивалентны. Поэтому пример должен проходить на ура)) Но что-то, пока, не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 22:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина Но что-то, пока, не получается. Ну со временем может и у Вас получится. Для этого особой квалификации вроде не требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 22:32 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятина Но что-то, пока, не получается. Ну со временем может и у Вас получится. Для этого особой квалификации вроде не требуется. ))) Приложения пишете Вы, а не я. И упорно не хотите отвечать на подходящий пример (или заменить его своим примером). Напомню: Данные нужны те же! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 23:49 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаПочему я привел такой пример. Дейт: "Ключевой вопрос здесь состоит в том, возможно ли однозначное отображение между версией базы данных после реструктуризации и ее исходной версией (т.е. обратима ли выполненная реструктуризация базы данных). Другими словами, вопрос заключается в том, являются ли эти две версии базы данных информационно эквивалентными . Если нет, то совершенно очевидно, что логическая независимость от данных не будет достигнута." В моем последнем примере базы до и после реструктуризации информационно эквивалентны. Поэтому пример должен проходить на ура)) Но что-то, пока, не получается. тут много пустых слов 1. "реструктуризации" 2. "информационно эквивалентными" 3. "логическая независимость" при опеделенных ограничениях (оставить версии "информационно эквивалентными") на "реструктуризации" "логическая независимость" достижима ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2014, 02:31 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Дейт точно больной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2014, 02:32 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаПриложения пишете Вы, а не я. А пора бы написать, чтобы не задавать вопросы в духе Армянского радио. Я приложений пишу мало, поскольку это достоинство обеспечивает специализацию ("базист", "клинтист" в данном контексте). Я в основном в плане приложений имею дело с представлениями и хранимками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2014, 10:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаПриложения пишете Вы, а не я. А пора бы написать, чтобы не задавать вопросы в духе Армянского радио. Я приложений пишу мало, поскольку это достоинство обеспечивает специализацию ("базист", "клинтист" в данном контексте). Я в основном в плане приложений имею дело с представлениями и хранимками. Итак Вы не в состоянии привести ни одного примера. Тогда возвращаемся к моему, как нельзя лучше подходящему под описание и Кодда и Дейта. Данные нужны те же! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2014, 23:20 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятинаПочему я привел такой пример. Дейт: "Ключевой вопрос здесь состоит в том, возможно ли однозначное отображение между версией базы данных после реструктуризации и ее исходной версией (т.е. обратима ли выполненная реструктуризация базы данных). Другими словами, вопрос заключается в том, являются ли эти две версии базы данных информационно эквивалентными . Если нет, то совершенно очевидно, что логическая независимость от данных не будет достигнута." В моем последнем примере базы до и после реструктуризации информационно эквивалентны. Поэтому пример должен проходить на ура)) Но что-то, пока, не получается. тут много пустых слов 1. "реструктуризации" 2. "информационно эквивалентными" 3. "логическая независимость" при опеделенных ограничениях (оставить версии "информационно эквивалентными") на "реструктуризации" "логическая независимость" достижима Философия. Пожалуйста, конкретно. Мой пример не устраивает, так приведите свой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2014, 23:21 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanSgt.PepperЭдвард Кодд сказал, что связи реализуются только через FK?.. А разве в современных СУБД есть еще какие-нибудь реализации связи? озвучьте если не трудно. В РМД нет никаких связей. РМД позволяет фиксировать ФАКТЫ... и все это в отношениях. Информация о связях - есть ФАКТЫ, они тоже в отношениях... Мне было не трудно... Озвучьте Ваши реализации связи в СУБД... Для примера можете озвучить тот хитрый FK для связи, когда "у студентов много преподов, а у преподов много студентов"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
GoffmanSgt.PepperА в Ваших "связях" и "ссылках" есть некие допущения, которые сужают РМД Не понимаю, почему чем вам так не угодило слово "ссылка". Вам надеюсь знакомо понятие "ссылочная целостность"? Какое слово лежит в основе?Я иногда использую слова "колики" или "вступило в бок", но медики пишут на своем малопонятном языке... GoffmanSgt.PepperУ Вас зацикленность на FK... Это все равно что сказать строителю: У Вас зацикленность на железобетоне...Вы не хотите признать, что железобетон - лишь частный случай, выбранный из спектра стройматериалов? А у Вас везде, где не железобетон - там патчи и отказ от сопромата... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:31 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Бредятина5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?)))Не буду оракулом если предположу, что это пресловутый Объектный Навигатор?... Что оно делало - как всегда осуществляло навигацию по объектам мумпса... Исправляло все недостатки теории Кодда-Дейта с ключами и как на духу использовало идентификацию и навигацию, придавая всему этому изрядную долю утерянной семантики... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 10:59 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperБредятина5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?)))Не буду оракулом если предположу, что это пресловутый Объектный Навигатор?... Что оно делало - как всегда осуществляло навигацию по объектам мумпса... Исправляло все недостатки теории Кодда-Дейта с ключами и как на духу использовало идентификацию и навигацию, придавая всему этому изрядную долю утерянной семантики... Зачем же нервничать и из-за этого писать неправду?) Если хотите что-то сказать по существу, то напишите конкретно что делало приложение с таблицей-представлением {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} и почему приложение не изменилось после нормализации. Или приведите свой пример, раз мой пример (демонстрирующий, что приложение не изменяется после нормализации) настолько неудачен))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 11:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаSgt.Pepperпропущено... Не буду оракулом если предположу, что это пресловутый Объектный Навигатор?... Что оно делало - как всегда осуществляло навигацию по объектам мумпса... Исправляло все недостатки теории Кодда-Дейта с ключами и как на духу использовало идентификацию и навигацию, придавая всему этому изрядную долю утерянной семантики... Зачем же нервничать и из-за этого писать неправду?) Если хотите что-то сказать по существу, то напишите конкретно что делало приложение с таблицей-представлением {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} и почему приложение не изменилось после нормализации. Или приведите свой пример, раз мой пример (демонстрирующий, что приложение не изменяется после нормализации) настолько неудачен)))Вы для начала скажите: Объектный Навигатор - это реальное приложение, к которому, скажем, м.б. применена технология скриншотов?.. Или это концепция без оных материализаций? Мы 6-7 лет назад недопоняли... ps Вопросы не могут быть неправдой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 11:19 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperБредятинапропущено... Зачем же нервничать и из-за этого писать неправду?) Если хотите что-то сказать по существу, то напишите конкретно что делало приложение с таблицей-представлением {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} и почему приложение не изменилось после нормализации. Или приведите свой пример, раз мой пример (демонстрирующий, что приложение не изменяется после нормализации) настолько неудачен)))Вы для начала скажите: Объектный Навигатор - это реальное приложение, к которому, скажем, м.б. применена технология скриншотов?.. Или это концепция без оных материализаций? Мы 6-7 лет назад недопоняли... ps Вопросы не могут быть неправдой... Еще как могут. Вы неправильно процитировали мое сообщение. Я же внимательно отношусь к каждому Вашему слову... Если хотите что-то сказать по существу, то напишите конкретно что делало приложение с таблицей-представлением {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} и почему приложение не изменилось после нормализации. Или приведите свой пример, раз мой пример (демонстрирующий, что приложение не изменяется после нормализации) настолько неудачен))) Если Вы что-то не поняли (в частности, про интерактивный интерфейс, входящий в состав СУБД - это Дейт говорил, а не я), то и спрашивайте в соответствующих темах. А Ваше "Вы для начала скажите" говорит лишь о нежелании обсуждать тему по существу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 11:48 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаSgt.PepperВопросы не могут быть неправдой... Еще как могут. How are you?.. Ты лжешь, скотина!.. БредятинаЕсли хотите что-то сказать по существу, то напишите конкретно что делало приложение с таблицей-представлением {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} и почему приложение не изменилось после нормализации. Или приведите свой пример, раз мой пример (демонстрирующий, что приложение не изменяется после нормализации) настолько неудачен)))В общем случае процессы нормализации и приложение, использующее данные, ортогональны. Приложение может измениться, а может и не меняться - это детали конкретной ситуации... БредятинаЕсли Вы что-то не поняли (в частности, про интерактивный интерфейс, входящий в состав СУБД - это Дейт говорил, а не я), то и спрашивайте в соответствующих темах. А Ваше "Вы для начала скажите" говорит лишь о нежелании обсуждать тему по существу...Интерактивный интерфейс Дейта - это, возможно, переводчики переврали. Дейт спит и видит чтобы его переводил на русский Чернышов Андрей Леонидович... Так Объектный Навигатор существует?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 16:52 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
quot Sgt.Pepper]Бредятинапропущено... Еще как могут. How are you?.. Ты лжешь, скотина!..[/quot] Это в стиле sql.ru - по существу)) Но, опять неправда(( Вот мой текст: Еще как могут. Вы неправильно процитировали мое сообщение. Я же внимательно отношусь к каждому Вашему слову... Sgt.PepperБредятинаЕсли хотите что-то сказать по существу, то напишите конкретно что делало приложение с таблицей-представлением {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} и почему приложение не изменилось после нормализации. Или приведите свой пример, раз мой пример (демонстрирующий, что приложение не изменяется после нормализации) настолько неудачен)))В общем случае процессы нормализации и приложение, использующее данные, ортогональны. Приложение может измениться, а может и не меняться - это детали конкретной ситуации... Итак, как я и предполагал, мой пример плохой) Пожалуйста, без общего случая (это же не научный и не философский форум), приведите пример. Я бы еще уточнил "приложение базы данных", а не просто "приложение"... Sgt.PepperБредятинаЕсли Вы что-то не поняли (в частности, про интерактивный интерфейс, входящий в состав СУБД - это Дейт говорил, а не я), то и спрашивайте в соответствующих темах. А Ваше "Вы для начала скажите" говорит лишь о нежелании обсуждать тему по существу...Интерактивный интерфейс Дейта - это, возможно, переводчики переврали. Дейт спит и видит чтобы его переводил на русский Чернышов Андрей Леонидович... Не знаю кто такой Чернышов, но вот то, что Дейта Вы вообще не рекомендуете читать на русском языке - это понятно. Тем не менее, предложите свой перевод, чтобы не так получилось: "Конечный пользователь может получать доступ к базе данных, применяя одно из интерактивных приложений, ..., или же интерфейс, интегрированный в программное обеспечение самой СУБД. Безусловно, подобный интерфейс также поддерживается интерактивными приложениями, но эти приложения не создаются пользователями-программистами, а являются встроенными в СУБД." Sgt.PepperТак Объектный Навигатор существует?... Правду ли говорит Дейт о пользовательском интерфейсе, интегрированном в СУБД?)) Думаю, что да - правду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 18:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаЭто в стиле sql.ru - по существу)) Но, опять неправда(( Вот мой текст: Ну приведите тогда пример Вашего вопроса, который есть неправда... БредятинаИтак, как я и предполагал, мой пример плохой) Пожалуйста, без общего случая (это же не научный и не философский форум), приведите пример. Я бы еще уточнил "приложение базы данных", а не просто "приложение"... Я бы еще уточнил - "приложение БД ЧАЛа, а не просто приложение"... Если рассматривать частные случаи - то нормализация никак не влияет на приложение, т.к. вьюха, которую использует приложение, на уровне атрибутики не изменилась... БредятинаНе знаю кто такой Чернышов, но вот то, что Дейта Вы вообще не рекомендуете читать на русском языке - это понятно. Тем не менее, предложите свой перевод, чтобы не так получилось: Никулин покинул этот мир, кому как не Вам бороться с отсутствием клоунов... Покажите текст Дейта - я предложу перевод... Бредятина"Конечный пользователь может получать доступ к базе данных, применяя одно из интерактивных приложений, ..., или же интерфейс, интегрированный в программное обеспечение самой СУБД. Безусловно, подобный интерфейс также поддерживается интерактивными приложениями, но эти приложения не создаются пользователями-программистами, а являются встроенными в СУБД." Сколько я не читал Дейта - он мало внимания уделял приложениям... Возможно, этот текст был вычитан в Appendix Z to "Introduction..."... Sgt.PepperТак Объектный Навигатор существует?... БредятинаПравду ли говорит Дейт о пользовательском интерфейсе, интегрированном в СУБД?)) Думаю, что да - правду. Мюнхгаузен ценен не тем что летал или не летал на Луну, а тем что не врет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 19:10 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperБредятинаЭто в стиле sql.ru - по существу)) Но, опять неправда(( Вот мой текст: Ну приведите тогда пример Вашего вопроса, который есть неправда... Итак Вы не в состоянии привести ни одного примера. Тогда возвращаемся к моему, как нельзя лучше подходящему под описание и Кодда и Дейта. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Sgt.PepperБредятинаИтак, как я и предполагал, мой пример плохой) Пожалуйста, без общего случая (это же не научный и не философский форум), приведите пример. Я бы еще уточнил "приложение базы данных", а не просто "приложение"... Я бы еще уточнил - "приложение БД ЧАЛа, а не просто приложение"... Если рассматривать частные случаи - то нормализация никак не влияет на приложение, т.к. вьюха, которую использует приложение, на уровне атрибутики не изменилась... Итак Вы не в состоянии привести ни одного примера. Тогда возвращаемся к моему, как нельзя лучше подходящему под описание и Кодда и Дейта. "Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Sgt.PepperБредятинаНе знаю кто такой Чернышов, но вот то, что Дейта Вы вообще не рекомендуете читать на русском языке - это понятно. Тем не менее, предложите свой перевод, чтобы не так получилось: Никулин покинул этот мир, кому как не Вам бороться с отсутствием клоунов... Покажите текст Дейта - я предложу перевод... То, что я скотина и клоун здесь все давно знают))) Давайте по существу... "Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Sgt.PepperБредятина"Конечный пользователь может получать доступ к базе данных, применяя одно из интерактивных приложений, ..., или же интерфейс, интегрированный в программное обеспечение самой СУБД. Безусловно, подобный интерфейс также поддерживается интерактивными приложениями, но эти приложения не создаются пользователями-программистами, а являются встроенными в СУБД." Сколько я не читал Дейта - он мало внимания уделял приложениям... Возможно, этот текст был вычитан в Appendix Z to "Introduction..."... Речь не о приложениях баз данных, которые пишут программисты (то есть, вынуждены писать, если используют реляционную СХОД), а об интерактивном интерфейсе в составе СУБД. Разумеется, что и ему Дейт не мог уделять много внимания в рамках реляционной теории. Ведь для этого необходима архитектура "модель верхнего уровня + маппинг по всем трем аспектам + РМД", которую мы здесь уже очень подробно обсудили... Если Вам понравился Appendix, пусть будет Appendix) Sgt.PepperТак Объектный Навигатор существует?... БредятинаПравду ли говорит Дейт о пользовательском интерфейсе, интегрированном в СУБД?)) Думаю, что да - правду. Мюнхгаузен ценен не тем что летал или не летал на Луну, а тем что не врет...[/quot] Ошибаетесь, Шмуц был вратарем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 19:55 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
БредятинаИтак Вы не в состоянии привести ни одного примера. Смешно. Пример вопроса, который содержит в себе ложь?... Я считаю, что таковых не бывает. Если Вы иного мнения, то один пример опровергает мою аксиому. Может Вы отпустите тормоза и озвучите такие примеры?... ЧАЛ, Вам кажется, что многословием Вы можете компенсировать отсутствие мыслей?... БредятинаИтак Вы не в состоянии привести ни одного примера. Тогда возвращаемся к моему, как нельзя лучше подходящему под описание и Кодда и Дейта.Вы повторяетесь. Как нельзя лучше - однозначно не Ваше вредо... Бредятина"Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". О мой бог!.. Он опять идет по Красному морю как посуху!.. БредятинаХорошо. Рассмотрим пример. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?)))Мы его третий пост рассматриваем. Дайте ссылку где Вы вычитали такое у Дейта и какой там был контекст... БредятинаТо, что я скотина и клоун здесь все давно знают))) Давайте по существу... Не, скотина - это которая на "У тебя все в порядке?" отвечает "прекрати свое вранье"... Вы, уверен, не такой, и я Вас так не называл... А клоуны бывают умными и глупыми... Чтобы быть первым - нужен талант... Вторым может быть каждый дурак... Бредятина"Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. Опять?.. О мой бог!... Вам не предлагали быть рупором Свидетелей Иеговы?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 20:30 |
|
||
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperБредятинаИтак Вы не в состоянии привести ни одного примера. Смешно. Пример вопроса, который содержит в себе ложь?... Я считаю, что таковых не бывает. Если Вы иного мнения, то один пример опровергает мою аксиому. Может Вы отпустите тормоза и озвучите такие примеры?... Вы умышленно неверно процитировали мое сообщение. Это неправда. Итак Вы не в состоянии привести ни одного примера. Тогда возвращаемся к моему, как нельзя лучше подходящему под описание и Кодда и Дейта. "Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Sgt.PepperЧАЛ, Вам кажется, что многословием Вы можете компенсировать отсутствие мыслей?... Скотина, клоун и мысли отсутствуют. Это все знают! (Непонятно только, зачем Вы что-то обсуждаете с этим идиотом))) Sgt.PepperБредятинаИтак Вы не в состоянии привести ни одного примера. Тогда возвращаемся к моему, как нельзя лучше подходящему под описание и Кодда и Дейта.Вы повторяетесь. Как нельзя лучше - однозначно не Ваше вредо... Хорошо. Теперь по существу. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Sgt.PepperБредятина"Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". О мой бог!.. Он опять идет по Красному морю как посуху!.. Не понятный аргумент. Понятно, что Вы имеете в виду маппинг по всем трем аспектам МД, но как-то неуверенно сформулировали свое возражение... Sgt.PepperБредятинаХорошо. Рассмотрим пример. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Мы его третий пост рассматриваем. Дайте ссылку где Вы вычитали такое у Дейта и какой там был контекст... Не по Дейту, а по Кодду, и Вы прекрасно все знаете. Поэтому, давайте по существу. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) Sgt.PepperБредятинаТо, что я скотина и клоун здесь все давно знают))) Давайте по существу... Не, скотина - это которая на "У тебя все в порядке?" отвечает "прекрати свое вранье"... Вы, уверен, не такой, и я Вас так не называл... А клоуны бывают умными и глупыми... Чтобы быть первым - нужен талант... Вторым может быть каждый дурак... Неправда, не было такого: "которая на "У тебя все в порядке?" отвечает "прекрати свое вранье"..." Но, я же уже несколько раз подвердил, что я скотина, клоун и дурак)) Ведь это всем нравится, и я рад, что доставляю людям удовольствие)) Sgt.PepperБредятина"Вьюха на уровне атрибутики не изменилась"! Замечательно) Итак, речь идет о "юзании механизма представлений". Хорошо. Рассмотрим пример. Опять?.. О мой бог!... Вам не предлагали быть рупором Свидетелей Иеговы?... Давайте по существу. Рассмотрим пример. 1. Одна таблица, и одно (аналогичное по структуре) представление. {Ид. читателя, Фамилия читателя, Ид. книги, Название книги} 2. Написали некий код приложения (интересно - что это за код, неужели, отчет?))) 3. После этого нормализовали БД {Ид. читателя, Фамилия читателя} {Ид. книги, Название книги} {Ид. читателя, Ид. книги} 4. Переписали код представления. 5. А приложение (по Кодду - Application programs and terminal activities) осталось без изменений. Какое именно приложение? Что оно делало?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 17:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1540946]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
274ms |
get tp. blocked users: |
2ms |
| others: | 9ms |
| total: | 482ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...