|
|
|
Проектирование атомарных справочников...
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38530226&tid=1540946]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 524ms |

| 0 / 0 |

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