|
|
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopвспомнил все места, где надо изменить код, сел да переписал... А мы, дураки, все как-то ленимся переписывать... и поделом, и правильно, грешные мы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 15:06 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisherъкак Вы объясняете преимущества в.2 человеку 100 раз плевать хотевшему на всякие там "нормализация" и т.д.? Если человеку 100.00 раз плевать на нормализацию, ему должно быть 200.00 раз плевать на структуру таблиц. да, вот, в том-то и дело, что "на структуру" ему "не всё равно" это одно из его требований - "я должен понимать структуру, и "что и где", в этой структуре - обозначает" человек, очень хорошо разбирается в Экселе, вот отсюда и у него, такое представление о структуре БД т.е. - у него есть Эксел.файл со страничками "Косьба", "Забивание" (и ещё хз скольких подобных), откуда он всякими ВПР-ами - вытягивает нужные ему данные, ... вот и схему в БД о "видит" - также как в том, своём злосчастном Экселе а мои "так в БД - не делают" - разбиваются об его "а почему ?" вот, как бы, такая, у этого топика, "вводная" :) Cane Cat FisherПусть набросает эскиз пользовательского интерфейса, и сделайте ему как он хочет. А в базе данных - EAV. Назло :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 15:13 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъвот и схему в БД о "видит" - также как в том, своём злосчастном Экселе да, и, соответственно, у человека "виденье" добавления новой таблицы в БД == добавлению нового листа в книгу Экселя, мол "чё там такого - нужно добавим, делов-то ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 15:15 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ълично моё мнение -в.2 Предложу вариант 3. Т.к. оба твоих варианта мне не понравились... РаботникиИДФИОдр.поля Комплексные работыИДНазваниедр.поля СоставляющиеИДНазваниедр.поля Состав работИДИД Комплексной работыИД Составляющей Выполнение работИДДата началаДата завершенияИД Комплексной работыдр.поля Состав работниковИДИД Выполнение работИД Работника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 15:36 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Author the new oneChopдля меня - лезть в системный каталог вместо того чтобы нормально спроектировать БД - признак глупости разработчика, а не его крутизны, крутизной это может считать только тот, кто так делаетПравильно - системный каталог - это для дураков, я тоже давно это подозревал. Для нас, дураков, его даже застандартизировали.у вас точно проблемы с русским языком, не "системный каталог", а "использование системного каталога вместо простого запроса" Author the new oneChop- не мне это это и обосновыватьДа уж не вам, это точно.конечно, не мне... вы, похоже не только русского языка не понимаете, но и не в курсах, что бремя доказательств лежит на плечах утверждающего не хотите доказывать - так и запишем: "утверждение без доказательств" в виду всего вышеизложенного - прощайте, батенька, я не настроен занимать троллингом, потому - в игнор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 16:09 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъда, вот, в том-то и дело...бегите оттуда, если есть куда... если нет - терпите и готовьтесь разгребать и выгребать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 16:11 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopпотому - в игнор Буду Вам в высшей степени обязан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 16:51 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chop что бремя доказательств лежит на плечах утверждающего За это отливание в граните - отдельное большое человеческое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 16:52 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
krvsaълично моё мнение -в.2 Предложу вариант 3. Т.к. оба твоих варианта мне не понравились... РаботникиИДФИОдр.поля Комплексные работыИДНазваниедр.поля СоставляющиеИДНазваниедр.поля Состав работИДИД Комплексной работыИД Составляющей Выполнение работИДДата началаДата завершенияИД Комплексной работыдр.поля Состав работниковИДИД Выполнение работИД Работника Спасибо Но эта "комплексная работа" - она одна-единственная и никакой другой - нет и не будет (в определённом смысле, эта комп.работа - это абстракция, в таком смысле как я её представил в старт.посте - "СтроительствоКоммунизма", т.е. - даже если какая-то "единичная" работа появится в будующем, - она всё равно будет входить в эту "комплексную работу" - "СтроительствоКоммунизма", вот ..) И, имхо, если Вашу схему переделать с учётом единственности этой "комплексной работы" - получим ту же схему №2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 17:36 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъчеловек, очень хорошо разбирается в Экселе, вот отсюда и у него, такое представление о структуре БД Ну что ж. Хорошо хоть, что в Экселе, а не в Ворде или Паинте. Иначе Вам было бы сложнее... :-) ...Психологи называют это "синдром утенка". Суть в том, что свежевылупившийся утенок осматривается вокруг, и первое что он увидит, достаточно большое и теплое - это и будет его мама, за ним надо ходить, пищать и делать все как она. Хотя на практике это может оказаться курица, кошка, или Конрад Лоренц ;-) Это очень частое явление в IT, когда первый интимный опыт знакомства с каким-либо языком, инструментом или концепцией оказывает настолько сильное влияние на несформировавшийся характер, что все остальные технологии представляются "увеличенными или искаженными копиями" первого. Однако клепать реляционную БД по образцу экселовских листов - глубоко порочный путь. Стукните по столу кулаком, а лучше "Введением в СУБД" К.Дж.Дейта (780 страниц), и скажите, что внутри в БД все делается иначе, чем в Экселе. А интерфейс, опять же говорю, сделайте экселоподобный, с листами. Пусть наслаждается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 18:04 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъИ, имхо, если Вашу схему переделать с учётом единственности этой "комплексной работы" - получим ту же схему №2 Отнють... У тебя связь с людьми не продумана... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 19:38 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Да и с составом работ, для одной единственной работы, такая же фигня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 19:40 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher...Психологи называют это "синдром утенка". да, это Вы точно подметили :) спасибо! возьму "на вооружение" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 21:37 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Chopпыпысы. как показывает моя личная практика - раньше или позже добавляться будет, скорее всего захочется что-то добавить сразу после введения в эксплуатацию , например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая", все, приехали честно говоря, и моя "практика" - показывает это же, даже больше скажу - ещё не было случая, что бы так не было :) ну и я конечно об этом сказал ... ответы были в духе : ъкриком орёт - "не будет ничего добавлятся, век воли не видать" ! ъъвот и схему в БД о "видит" - также как в том, своём злосчастном Экселе да, и, соответственно, у человека "виденье" добавления новой таблицы в БД == добавлению нового листа в книгу Экселя, мол "чё там такого - нужно добавим, делов-то ..." на возражение, что прийдётся переписывать логику расчета в ХП, так как появится новая таблица - ответ у человека такой: - при добавлении нового типа работы - логику прийдётся переписывать тоже, так, как у этого нового типа работы - своя обл. применимости - он применяется в одних отчетах, и не применяется в других ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 22:01 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ, А в варианте структуры 1 как 2 работы связываются в супер-работу? Или это не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 22:07 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
MasterZivъ, А в варианте структуры 1 как 2 работы связываются в супер-работу? Или это не нужно? не нужно, я, видимо, с этой "комплексной работой", всех несколько запутал ... есть много разных работ - они вполне самодостаточные, сами по себе (но являются составными частями одного большого продукта/проекта/работы/дела) вот, некто А: - сегодня - копал 2ч - вчера - косил 5ч - позавчера - программил на Java 10ч и дальше, мне нужно будет "крутить" это разное участие А в работе, в "очень разных" разрезах - работал физически/умственно, в коллективе/лично и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 22:29 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
вот я подумал, и, мой вопрос можно переформулировать так: Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 22:31 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры? А так ли это? Если есть куча ничем не связанных сущностей таблиц с полями name и id редко их объединяют в одну. А вашего заказчика я в его экселе попросил бы построить сводную таблицу где по горизонтали люди а по вертикали виды работ и показал бы как легко это делается в случае, если все на одном листе, и какой геморрой в случае, если на нескольких :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 22:49 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ, и где нашли такую глупость в качесте "не рекомендации"? :) В БД НЕ рекомендуется избыточность хранения данных... борьба с которой зовется нормальными формами (2НФ, 3НФ - типовой уровень, есть ещё 4НФ, 5НФ - встречается крайне редко). Однако, "одинаковость" таблиц сюда никоим образом не относится. Таблицы могут быть полностью одинаковыми, но хранить совершенно разные данные и для разных целей... одно, другому - никак не мешает. Это даже далеко не всегда есть "денормализация", как тут 13729784 многие подумали... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 22:58 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Arhat109как тут 13729784 многие подумали... :) А там разве нет избыточности данных? Например, наименование товара будет дублироваться в заказе даже в тех случаях, когда оно не менялось, причем, даже если оно менялось, оно будет дублироваться между разными заказами. Вообще, описанная топикстартером ситуация тоже про дублирование - только не данных, а структуры. Соответственно, в результате такого дублирования СУБД не знает о том, что по сути дела разные виды работ схожи с точки зрения их учета и их можно обрабатывать одинаково. Такое структурное дублирование (или уn-рение) приводит к дублированию как работы программиста, так и работы СУБД. (Например, представьте что надо для написания и выполнения простейшего запроса "какие работы выполнял Вася с 8 до 11?" или "на какие работы уходит больше всего времени в этом году?") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 23:18 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
F#ъ Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры? А так ли это? Если есть куча ничем не связанных сущностей таблиц с полями name и id редко их объединяют в одну. даа, поймали :) хорошо, давайте так: Почему в БД не рекомендуется иметь несколько разных таблиц фактов одинаковой структуры?[/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 01:11 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ Почему в БД не рекомендуется иметь несколько разных таблиц фактов одинаковой структуры?[/кем это? PS есичё, тему не читал )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 01:53 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
> Почему в БД не рекомендуется иметь несколько разных таблиц фактов одинаковой структуры? Нет таких рекомендаций. Вы не с той стороны подходите к проблеме. Объяснение - это вписывание прецедента в существующую систему понятий. Если у юзера нет такой системы понятий, вы ничего не сможете ему объяснить. Два варианта: создать такую систему или забить. Забить в данном случае дешевле. Знание букв и цифр - табличного редактора - навыков проектирования вашему юзеру не добавляет. Как факт. А мозг вынести он, судя по косвенным признакам, вполне в состоянии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 03:28 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
F#, если делать как в первой рекомендации - да, есть избыточность данных (Заказы будут не в 3НФ)... там далее есть выделенная из них табличка "проданные товары"... которая по своей структуре может быть даже полностью идентична "каталогу" (даже цену из заказа можно убрать при желании/задаче)... но, опять же "избыточность" - часто также не есть "зло"... :) В целом, не курите ни чьи "рекомендации" без проверок. Каждое утверждение имеет свои границы применимости, о которых никогда нельзя забывать. :) Вашу задачу можно делать и так, и этак и даже поперек (EAV)... если барин утверждает что других не будет... сделайте как хочет ... я бы просто по коду расставил банальный switch() с default: "а вот барин утверждал, что сюда не попадем! Скажите ему всё, что о нём думаете, сами..." :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 06:30 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Arhat109, Барин, вроде, не настаивает, а спрашивает "почему". Надо ему просто объяснить что при любом дублировании куча работы будет дублироваться при каждом внесении изменений. При этом непонятно какие доводы будут за схему номер 1 кроме "я так привык". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 06:46 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
F#Надо ему просто объяснить что при любом дублировании куча работы будет дублироваться при каждом внесении измений.Например? Не вижу особой разницы, если создать четыре представления и через них работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 07:48 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
F#, В таких случаях меня учили отвечать "патамушто" и "из конструктивных соображений". Смотря кому отвечаем. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 11:04 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Arhat109, На предыдущий совет про "по коду расставить ...": ничто так не отрезвляет барина, как ответ проги "Упс. Данная опция отключена по п.1.2.3 ТЗ по указанию ... см. мантис, вопрос 5625, было в ревизии 7890", особенно когда он сам же и нарывается на сообщение. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 11:08 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
ъ Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры? Такой рекомендации нет. Но иногда несколько таблиц одинаковой структуры косвенно укажут специалисту на возможные ошибки проектирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 13:11 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНо иногда несколько таблиц одинаковой структуры косвенно укажут специалисту на возможные ошибки проектирования. Например наш главный конкурент имеет повторение структуры на каждый год. Т.е. его таблички просто копируются для данных каждого года. И всякое изменеие структуры влечет перестройку всех таблиц и данных по годам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 14:12 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
skyANAF#Надо ему просто объяснить что при любом дублировании куча работы будет дублироваться при каждом внесении измений.Например? Не вижу особой разницы, если создать четыре представления и через них работать. Какие 4 представления? На какой субд? При этом в любом случае при изменении структуры надо будет менять n таблиц. Например, в MS SQL updatable views обладают существенными ограничениями. И главное, зачем это всё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 15:11 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
F#Какие 4 представления?v_Работнике, v_СтроительствоКоммунизма, v_Косьба и v_Забивание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 19:45 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
skyANA, а зачем столько вью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 22:15 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Поможет только смена работы. Если шэф не шарит в основах СУБД и его ещё не уволили, то скорее всего у него очень большой орган есть которому Вы не противопоставите даже Нобелевскую премию. Есть правда вариант деградировать до уровня шэфа и отращивать десятилетиями такой же орган, но... Может проще работу поменять :) На своём опыте - 2.5 года такой "работы" ничего толкового не дали. Поменял работу - совсем другое дело. ЗЫ: Ещё ж такой момент: если он не понимает таких простых вещей, то что уже говорить за реально сложные?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 17:46 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
BJValentineПоможет только смена работы. Если шэф не шарит в основах СУБД и его ещё не уволили, то скорее всего у него очень большой орган есть которому Вы не противопоставите даже Нобелевскую премию. Есть правда вариант деградировать до уровня шэфа и отращивать десятилетиями такой же орган, но... Может проще работу поменять :) На своём опыте - 2.5 года такой "работы" ничего толкового не дали. Поменял работу - совсем другое дело. ЗЫ: Ещё ж такой момент: если он не понимает таких простых вещей, то что уже говорить за реально сложные?! Это не начальник! это - заказчик ! И заказчик, на своём каком-то, "не профессиональном" уровне - достаточно "шаряший", и "с желанием", в будующем, какие-то возникающие вопросы - решать самому : запросики, там, пописывать, отчеты делать и т.д. Отсюда и вот такие его требования. ъда, вот, в том-то и дело, что "на структуру" ему "не всё равно" это одно из его требований - "я должен понимать структуру, и "что и где", в этой структуре - обозначает" если вернутся опять к той, предложенной им схеме то начиналось всё с того, что половину атрибутов работника (Адрес например, для определённости) - он "запихнул" в эти таблицы работ ("Косьба", "Забивание"). С этим, мне удалось его "переубедить, простым примером - то что, в конце концов, всё закончится тем, что у одного и того же работника, в разных таблицах работ - будет разный Адрес, и никто, никогда об этом не узнает ... То есть - не "напирая" на различные "словеса", типа "нормализация", "дублирование данных" и т.д. ... - просто на примере, "чем это в конце концов заканчивается" :) Вот, что-то такое же, "простое и убедительное" я хотел услышать по сабжевому вопросу: - выбор между 2-мя принципиально разными возможностями построения схемы данных, в части "Работ". Одна общая таблица + справочник типов работ или - отдельная таблица, под каждый тип работы И, насколько я понял из обсуждения, никаких таких простых слов/примеров, для данного вопроса - нет. И 1-ый и 2-ой вариант - имеют право на существование, и решаться должно, в каждом конкретном случае, "персонально". ...правда, из каких критериев "решаться" - всё равно не понятно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 10:34 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Если заказчик, то надо потерпеть его. Грустно это когда заказчик лезет во внутреннюю организацию программы не имея внушительного опыта проектирования. Ну, а что поделать? Сделай ему велосипед с квадратными колёсами как он хочет - единственное что приходит в голову. А за поддержку сего продукта денежку брать не забывай. Если потребуется таки добавить ещё один или (что ещё лучше) несколько типов работ - бери много денег. Потому, что в этом случае объём работ существенно вырастет: - Моделирование новых таблиц (включая индексы, ключи, триггеры etc.); - Создание скриптов для этих таблиц, модификация/создание представлений; - Администрирование доступа к новым объектам; - Настройка репликации этих таблиц; - И прочее, прочее, прочее. Справа от каждого пункта надо написать цену. Моё мнение - дураки должны платить, причём прямо пропорционально своей тупости (а лучше по экспоненте! ))) ). Природа наказывает каждого за тупость, это нормально и это хорошо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 11:54 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Если он такой "шарящий", пусть себе сам программу пишет ))) Видать не достаточно шарящий всё-таки. А структуру детскую просит скорее всего потому, что запросы писал только в мастере. У меня уже подобных ситуаций было 100500, возможно твоя ситуация иная, смотри сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 11:58 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
BJValentineЕсли заказчик, то надо потерпеть его. Грустно это когда заказчик лезет во внутреннюю организацию программы не имея внушительного опыта проектирования. Ну, а что поделать? Сделай ему велосипед с квадратными колёсами как он хочет - единственное что приходит в голову. ... ну да, вот так сейчас и решил делать (точнее - сделал) :) сказал ему, что - твоя схема имеет "один большой плюс" - ты её выбрал сам! и за все "негаразды" с ней - будеш отвечать сам! может и не будет "негараздов" - а может и будут ... я считаю, что мой вариант (2-ой который, с общей таб.+справочник) - лучше, но аргументированно это доказать - не могу ... значит делаем так, как ты настаиваеш ... вот ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 12:19 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Второй вариант лучше конечно. Тут уже расписали вдоль и поперёк почему. Но дядя похоже не достаточно хорошо умеет писать запросы поэтому ему нада структура попроще. Одна таблица на все типы работ это выше уровень абстракции чем для каждого типа работ своя таблица. А не все умеют работать с абстракциями. Это то и отличат программиста от того, кто заказывает программы. Это как моего коллегу заставляли для каждого справочника писать отдельную форму, а он написал один компонент реализующий функционал ЛЮБОГО справочника. Понятно, что для поддержки и развития этой конфетки надо ум хороший, но есть места где ума дефицит. Вот и получается, что не имея денег покупают запорожец, ну а мэрса хотят все без исключения ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 12:34 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
Можно придумать такой тип задач, где вариант 1 будет лучше. Пример - случаи, когда косьба и забивание являются суть разными вещами и обладают своим набором атрибутов. Но даже в этом случае вопрос, что лучше - делать разряжённую общую таблицу или сводить общие атрибуты в одну, а на остаток делать свои таблицы-расширения, открыт. Логическое отличие между вариантом 1 и 2 - возможность на общую таблицу констрэинтов на уникальность понавешать. В конечном счёте всё упрётся в вопросы производительности, т.е. в физический дизайн, частью которого дизайн таблиц и является (можно же действительно понаделать дополнительных view'х, и для приложений различия между вараинтом 1 и 2 (с учётом замечания про constraints) просто исчезнут). Отталкиваться надо от функциональности системы. Какие запросы будут использоваться чаще всего. Только в этом свете правильно выявляются сущности, которыми оперирует система. Если запросы в основном будут сразу по всем типам работ (что вероятней всего, это зависит от ваших задач), эффективней будет вариант 2; если работы разных типов никогда совместно не участвуют в запросах/выборках, то эффективней вариант 1. Разница в стоимости - раза в два. Можно (если СУБД умеет) поиграться с партиционированием по типу работ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 14:19 |
|
||
|
Нормализация для "тёмных" :)
|
|||
|---|---|---|---|
|
#18+
CawaSPb, авторЕсли запросы в основном будут сразу по всем типам работ (что вероятней всего, это зависит от ваших задач), эффективней будет вариант 2; если работы разных типов никогда совместно не участвуют в запросах/выборках, то эффективней вариант 1. Разница в стоимости - раза в два. Правильно разработанный (кластерный) индекс уменьшит стоимость второго варианта почти в два раза :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 16:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541385]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 378ms |

| 0 / 0 |
