|
|
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Приветствую, Уважаемый all! вот такой вопрос: - есть группа работников - эти работники выполняют одну комплексную работу, которая, сама по себе, состоит из нескольких составляющих / работ - этих составляющих "комплексной работы" - может быть сколько угодно (но в данном случае - 2-е ("Косить" и "Забивать")) как лучше организовать схему данных? почему? в.1 в.2 лично моё мнение -в.2 и тут главный вопрос :) как Вы объясняете преимущества в.2 человеку 100раз плевать хотевшему на всякие там "нормализация" и т.д.? т.е. - есть ли какие-то более "приземлённые" причины, по которым нужно выбрать в.2? спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 01:49 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Добавление нового типа работы требует DML, а не DDL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 02:34 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
SERG1257 , спасибо, за ответ! криком орёт - "не будет ничего добавлятся, век воли не видать" ! чес-слово :) что-то нужно "большее" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 02:38 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Старший приказал (с) место встречи изменить нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 02:59 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ът.е. - есть ли какие-то более "приземлённые" причины, по которым нужно выбрать в.2?[/b] спасибо! 1. Ну, возможно, если все виды работ не известны, то первый вариант выглядит как не завершенный. Т.е. заранее закладывается добавление новых таблиц в ходе эксплуатации. А структура на то и структура, чтобы быть относительно статичной частью системы. Ить это потянет за собой дописывание запросов и вообще. Старые какие-то может придется править. Удорожание сопровождения. 2. Возможно, излишний повтор одних и тех же атрибутов в разных таблицах. Ухудшает восприятие схемы, да и анализ тех же функциональных зависмостей. Их желательно вынести в одну - обобщение, а это ведет ко второй схеме. 3. Може случиться так, что много мелких таблиц не всегда выглядит преимуществом при извлечении инфы. Например, найти максимвльную дату из всех работ во втором случае много легче будет, чем объеденить 100 мелких таблиц в одном запросе. Который из-за пп 1 придется еще дорабатвать при каждой новой появившейся вдруг табле в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 09:00 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ, Во втором случае проще обеспечить неозвученные требования: "человек не может делать два дела одновременно" или "все люди равны, но некоторые равнее" и поэтому не могут делать некоторые виды работ. Например - руководить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 10:20 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ, Вообще-то из 1 легко делается 2, и наоборот. Но если список фиксированный, то почему бы не сунуть эти поля прямо в "Работника"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 10:53 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
vadiminfo3. Може случиться так, что много мелких таблиц не всегда выглядит преимуществом при извлечении инфы. Например, найти максимвльную дату из всех работ во втором случае много легче будет, чем объеденить 100 мелких таблиц в одном запросе. Который из-за пп 1 придется еще дорабатвать при каждой новой появившейся вдруг табле в БД.имхается мне, что человеку, который бьет себя пяткой в грудь " не будет ничего добавлятся, век воли не видать ", это может оказаться главным аргументом - выяснение максимальной даты, получение списка выполняемых работ на заданное время итд итп, везде, где нужна будет сводная информация, придется строить запрос не по одной таблице, а объединять столько таблиц, сколько видов работ пысы: человека, которому "плевать на всякие там нормализации" не стоит подпускать до проектирования БД, нарисуйте ему формочки, как ему хочется, и не посвящайте в "кухню БД" :) пыпысы. как показывает моя личная практика - раньше или позже добавляться будет, скорее всего захочется что-то добавить сразу после введения в эксплуатацию, например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая", все, приехали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 11:02 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopвезде, где нужна будет сводная информация, придется строить запрос не по одной таблице, а объединять столько таблиц, сколько видов работ Зато когда потребуется отчет по одному виду работ, то все будет считаться гораздо шустрее. И, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким? авторпыпысы. как показывает моя личная практика - раньше или позже добавляться будет, скорее всего захочется что-то добавить сразу после введения в эксплуатацию, например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая", все, приехали Люди возьмум и добавят еще одну таблицу. Или они должны принести клятву на крови - отныне, мол, в схему не будет добавлено ни одной новой таблицы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 13:49 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneChopвезде, где нужна будет сводная информация, придется строить запрос не по одной таблице, а объединять столько таблиц, сколько видов работЗато когда потребуется отчет по одному виду работ, то все будет считаться гораздо шустрее.1. немного быстрее - вполне возможно, но "гораздо шустрее"... не факт не факт... надо тестить на конкретных данных и БД 2. у вас есть статистика как часто будет требоваться отчет по одному виду работ и как часто - сводная инфа? 3. по одному виду работ запрос и так будет "шустро выполняться" Author the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?увеличение объема кода, увеличение структуры данных ужаса в этом никакого нет, просто неудобно, бОльшая вероятность шибки, дополнительная работа, а ужаса не, нету :) пысы. какие-то вы термины используете, мне до конца не понятные - "гораздо шустрее", "ужас" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:02 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chop1. немного быстрее - вполне возможно, но "гораздо шустрее"... не факт не факт... надо тестить на конкретных данных и БД 2. у вас есть статистика как часто будет требоваться отчет по одному виду работ и как часто - сводная инфа? .... 3. по одному виду работ запрос и так будет "шустро выполняться" У Вас, похоже, она уже есть :-) Chopувеличение объема кода, увеличение структуры данных ужаса в этом никакого нет, просто неудобно, бОльшая вероятность шибки, дополнительная работа, а ужаса не, нету :) Мне, как программисту, идея боязни кода кажется несколько неожиданной. Ну сделают view на эти таблицы для представления в виде из варианта 2 - ну и что? Chopпысы. какие-то вы термины используете, мне до конца не понятные - "гораздо шустрее", "ужас" :) В вашей терминологии - это когда работает с такой скоростью, что "просто удобно" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:08 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneУ Вас, похоже, она уже есть :-)кто, она? Author the new oneChopувеличение объема кода, увеличение структуры данных ужаса в этом никакого нет, просто неудобно, бОльшая вероятность шибки, дополнительная работа, а ужаса не, нету :)Мне, как программисту, идея боязни кода кажется несколько неожиданной. Ну сделают view на эти таблицы для представления в виде из варианта 2 - ну и что?где вы увидели "боязнь кода"? у вас проблеммы с пониманием русского языка? я ведь два раза написал "ужаса нету" мне, как ленивому программисту, лениво выполнять лишнюю работу, которую можно сделать проще, зачем делать лишнюю работу? например задача построить таблицу " кто чем занимается сейчас " во втором случае тривиальна и пишется прогом с уровнем подготовки " SQL за 21 день ", в первом же случае все становится намного "интереснее" в том числе и потому, что на тривиальнейший вопрос "какие вообще виды работ есть?", первая схема ответа не дает - где-то как-то запоминайте, документируйте, сканируйте все таблицы... зачем этот гемор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:21 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Еще одна причина использовать 2й вариант - адекватная поддержка таких связей в ORM - работать даже удобней, чем с отдельными таблицами по "типу работ". Также вас поймут другие программисты, и на такую структуру вы сможете навешать и нормальные шаблоны программирования и вообще жить спокойно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:22 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneChopпыпысы. как показывает моя личная практика - раньше или позже добавляться будет, скорее всего захочется что-то добавить сразу после введения в эксплуатацию, например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая", все, приехалиЛюди возьмум и добавят еще одну таблицу. Или они должны принести клятву на крови - отныне, мол, в схему не будет добавлено ни одной новой таблицы!и перепишут заодно какую-то часть функционала... потратят на это время и деньги прорабу Васе плевать на клятвы РП Пети... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:24 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopкто, она? Статистика, что ж еще. Chopмне, как ленивому программисту, лениво выполнять лишнюю работу, которую можно сделать проще, зачем делать лишнюю работу? А почему вы, собственно, уверены, что так будет проще? Мне лично это совершенно неочевидно. (Проще всего вообще счетчики в "фио" напихать, кстати) Chopнапример задача построить таблицу " кто чем занимается сейчас " во втором случае тривиальна и пишется прогом с уровнем подготовки " SQL за 21 день ", Я, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу. Chopв первом же случае все становится намного "интереснее" в том числе и потому, что на тривиальнейший вопрос "какие вообще виды работ есть?", первая схема ответа не дает - где-то как-то запоминайте, документируйте, сканируйте все таблицы... зачем этот гемор? Вы не подскажете, системный каталог изучают на 22 дне обучения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:25 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким? В том, что в запросе будет перечислено много таблиц. Точнее, ужас не в этом, а в том, что во всех запросах, связанным с количеством работы, будет перечислено много таблиц. А таких запросов может быть, например, сто или тысяча. Отчеты, экспорты, SQL-макросы в Excel'ах продвинутых юзеров... Author the new oneЛюди возьмум и добавят еще одну таблицу. ...и должны будут добавить еще один UNION во все запросы. В сто или тысячу. А если в какой-то запрос добавить UNION забудут, он будет молча и весело выдавать неверные данные. Без учета новой косьбы. Несколько месяцев подряд. Вот тут-то кому-то и захочется крови... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:26 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ChopAuthor the new oneпропущено... Люди возьмум и добавят еще одну таблицу. Или они должны принести клятву на крови - отныне, мол, в схему не будет добавлено ни одной новой таблицы!и перепишут заодно какую-то часть функционала... потратят на это время и деньги прорабу Васе плевать на клятвы РП Пети... А может, и голые при луне танцевать будут. Вы когда додумываете - не останавливайтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:28 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъкак Вы объясняете преимущества в.2 человеку 100 раз плевать хотевшему на всякие там "нормализация" и т.д.? Если человеку 100.00 раз плевать на нормализацию, ему должно быть 200.00 раз плевать на структуру таблиц. Пусть набросает эскиз пользовательского интерфейса, и сделайте ему как он хочет. А в базе данных - EAV. Назло :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:30 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherAuthor the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким? В том, что в запросе будет перечислено много таблиц. Уже довольно давно существует такое полезное изобретение как view. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:35 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneChopкто, она?Статистика, что ж еще.с чего вы это придумали? Author the new oneChopмне, как ленивому программисту, лениво выполнять лишнюю работу, которую можно сделать проще, зачем делать лишнюю работу?А почему вы, собственно, уверены, что так будет проще? Мне лично это совершенно неочевидно. (Проще всего вообще счетчики в "фио" напихать, кстати)сочуйствую, попробуйте еще раз перечитать мой пост, обратите внимание на фразу "какие вообще виды работ есть?", например во втором пример пишете обычный дистинкт, в первом же - проявляете чудеса собственной крутизны программиста БД Author the new oneChopнапример задача построить таблицу " кто чем занимается сейчас " во втором случае тривиальна и пишется прогом с уровнем подготовки " SQL за 21 день ",Я, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.пример в студию - делов то... Author the new oneChopв первом же случае все становится намного "интереснее" в том числе и потому, что на тривиальнейший вопрос "какие вообще виды работ есть?", первая схема ответа не дает - где-то как-то запоминайте, документируйте, сканируйте все таблицы... зачем этот гемор?Вы не подскажете, системный каталог изучают на 22 дне обучения?у вас таки проблемы с русским языком... это в первом примере на 22-м дне обучения прог сможет написать требуемый запрос, а не в этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:36 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopс чего вы это придумали? С ваших бодрых выводов, что и как будет работать. Chopсочуйствую, попробуйте еще раз перечитать мой пост, обратите внимание на фразу "какие вообще виды работ есть?", например во втором пример пишете обычный дистинкт, в первом же - проявляете чудеса собственной крутизны программиста БД Если выборка из системного каталога для вас - чудеса крутизны, то... ChopЯ, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.пример в студию - делов то... Напишите свой - будет аналогично. Хотя, боюсь, от вас всего можно ожидать. ChopВы не подскажете, системный каталог изучают на 22 дне обучения?у вас таки проблемы с русским языком... это в первом примере на 22-м дне обучения прог сможет написать требуемый запрос, а не в этом Ясно, до каталога еще не дочитали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:46 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneChopс чего вы это придумали?С ваших бодрых выводов, что и как будет работать.вы ошиблись Author the new oneChopсочуйствую, попробуйте еще раз перечитать мой пост, обратите внимание на фразу "какие вообще виды работ есть?", например во втором пример пишете обычный дистинкт, в первом же - проявляете чудеса собственной крутизны программиста БДЕсли выборка из системного каталога для вас - чудеса крутизны, то...для меня - лезть в системный каталог вместо того чтобы нормально спроектировать БД - признак глупости разработчика, а не его крутизны, крутизной это может считать только тот, кто так делает Author the new oneChopпример в студию - делов то...Напишите свой - будет аналогично. Хотя, боюсь, от вас всего можно ожидать.понятно - написать не можете, не я утверждал, что Author the new oneЯ, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.- не мне это это и обосновывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:56 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherAuthor the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?В том, что в запросе будет перечислено много таблиц. Точнее, ужас не в этом, а в том, что во всех запросах, связанным с количеством работы, будет перечислено много таблиц. А таких запросов может быть, например, сто или тысяча. Отчеты, экспорты, SQL-макросы в Excel'ах продвинутых юзеров...да разве ж это ужас? вспомнил все места, где надо изменить код, сел да переписал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 14:58 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopдля меня - лезть в системный каталог вместо того чтобы нормально спроектировать БД - признак глупости разработчика, а не его крутизны, крутизной это может считать только тот, кто так делает Правильно - системный каталог - это для дураков, я тоже давно это подозревал. Для нас, дураков, его даже застандартизировали. ChopЯ, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.- не мне это это и обосновывать Да уж не вам, это точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38109234&tid=1541385]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 417ms |

| 0 / 0 |
