powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нормализация для "тёмных" :)
65 сообщений из 65, показаны все 3 страниц
Нормализация для "тёмных" :)
    #38108673
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
Приветствую, Уважаемый all!

вот такой вопрос:
- есть группа работников
- эти работники выполняют одну комплексную работу, которая, сама по себе, состоит из нескольких составляющих / работ
- этих составляющих "комплексной работы" - может быть сколько угодно (но в данном случае - 2-е ("Косить" и "Забивать"))

как лучше организовать схему данных? почему?
в.1

в.2


лично моё мнение -в.2
и тут главный вопрос :)

как Вы объясняете преимущества в.2 человеку 100раз плевать хотевшему на всякие там "нормализация" и т.д.?
т.е. - есть ли какие-то более "приземлённые" причины, по которым нужно выбрать в.2?


спасибо!
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108686
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавление нового типа работы требует DML, а не DDL.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108689
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
SERG1257 ,

спасибо, за ответ!

криком орёт - "не будет ничего добавлятся, век воли не видать" !
чес-слово :)

что-то нужно "большее" :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108695
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старший приказал (с) место встречи изменить нельзя
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108768
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ът.е. - есть ли какие-то более "приземлённые" причины, по которым нужно выбрать в.2?[/b]

спасибо!

1. Ну, возможно, если все виды работ не известны, то первый вариант выглядит как не завершенный. Т.е. заранее закладывается добавление новых таблиц в ходе эксплуатации. А структура на то и структура, чтобы быть относительно статичной частью системы.
Ить это потянет за собой дописывание запросов и вообще. Старые какие-то может придется править. Удорожание сопровождения.
2. Возможно, излишний повтор одних и тех же атрибутов в разных таблицах. Ухудшает восприятие схемы, да и анализ тех же функциональных зависмостей. Их желательно вынести в одну - обобщение, а это ведет ко второй схеме.
3. Може случиться так, что много мелких таблиц не всегда выглядит преимуществом при извлечении инфы. Например, найти максимвльную дату из всех работ во втором случае много легче будет, чем объеденить 100 мелких таблиц в одном запросе. Который из-за пп 1 придется еще дорабатвать при каждой новой появившейся вдруг табле в БД.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108826
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъ,

Во втором случае проще обеспечить неозвученные требования: "человек не может делать два дела одновременно" или "все люди равны, но некоторые равнее" и поэтому не могут делать некоторые виды работ. Например - руководить.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108861
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъ,

Вообще-то из 1 легко делается 2, и наоборот.
Но если список фиксированный, то почему бы не сунуть эти поля прямо в "Работника"?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38108872
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo3. Може случиться так, что много мелких таблиц не всегда выглядит преимуществом при извлечении инфы. Например, найти максимвльную дату из всех работ во втором случае много легче будет, чем объеденить 100 мелких таблиц в одном запросе. Который из-за пп 1 придется еще дорабатвать при каждой новой появившейся вдруг табле в БД.имхается мне, что человеку, который бьет себя пяткой в грудь " не будет ничего добавлятся, век воли не видать ",
это может оказаться главным аргументом - выяснение максимальной даты, получение списка выполняемых работ на заданное время итд итп,
везде, где нужна будет сводная информация, придется строить запрос не по одной таблице,
а объединять столько таблиц, сколько видов работ

пысы: человека, которому "плевать на всякие там нормализации"
не стоит подпускать до проектирования БД,
нарисуйте ему формочки, как ему хочется, и не посвящайте в "кухню БД" :)

пыпысы. как показывает моя личная практика - раньше или позже добавляться будет,
скорее всего захочется что-то добавить сразу после введения в эксплуатацию,
например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая",
все, приехали
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109175
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopвезде, где нужна будет сводная информация, придется строить запрос не по одной таблице,
а объединять столько таблиц, сколько видов работ
Зато когда потребуется отчет по одному виду работ, то все будет считаться гораздо шустрее.
И, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?

авторпыпысы. как показывает моя личная практика - раньше или позже добавляться будет,
скорее всего захочется что-то добавить сразу после введения в эксплуатацию,
например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая",
все, приехали
Люди возьмум и добавят еще одну таблицу. Или они должны принести клятву на крови - отныне, мол, в схему не будет добавлено ни одной новой таблицы!
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109188
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneChopвезде, где нужна будет сводная информация, придется строить запрос не по одной таблице,
а объединять столько таблиц, сколько видов работЗато когда потребуется отчет по одному виду работ, то все будет считаться гораздо шустрее.1. немного быстрее - вполне возможно,
но "гораздо шустрее"... не факт не факт...
надо тестить на конкретных данных и БД
2. у вас есть статистика как часто будет требоваться отчет по одному виду работ и как часто - сводная инфа?
3. по одному виду работ запрос и так будет "шустро выполняться"
Author the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?увеличение объема кода,
увеличение структуры данных
ужаса в этом никакого нет,
просто неудобно, бОльшая вероятность шибки, дополнительная работа,
а ужаса не, нету :)

пысы. какие-то вы термины используете, мне до конца не понятные - "гораздо шустрее", "ужас" :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109201
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop1. немного быстрее - вполне возможно,
но "гораздо шустрее"... не факт не факт...
надо тестить на конкретных данных и БД
2. у вас есть статистика как часто будет требоваться отчет по одному виду работ и как часто - сводная инфа?
....
3. по одному виду работ запрос и так будет "шустро выполняться"
У Вас, похоже, она уже есть :-)

Chopувеличение объема кода,
увеличение структуры данных
ужаса в этом никакого нет,
просто неудобно, бОльшая вероятность шибки, дополнительная работа,
а ужаса не, нету :)
Мне, как программисту, идея боязни кода кажется несколько неожиданной. Ну сделают view на эти таблицы для представления в виде из варианта 2 - ну и что?

Chopпысы. какие-то вы термины используете, мне до конца не понятные - "гораздо шустрее", "ужас" :)
В вашей терминологии - это когда работает с такой скоростью, что "просто удобно" :-)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109224
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneУ Вас, похоже, она уже есть :-)кто, она?
Author the new oneChopувеличение объема кода,
увеличение структуры данных
ужаса в этом никакого нет,
просто неудобно, бОльшая вероятность шибки, дополнительная работа,
а ужаса не, нету :)Мне, как программисту, идея боязни кода кажется несколько неожиданной. Ну сделают view на эти таблицы для представления в виде из варианта 2 - ну и что?где вы увидели "боязнь кода"?
у вас проблеммы с пониманием русского языка?
я ведь два раза написал "ужаса нету"

мне, как ленивому программисту, лениво выполнять лишнюю работу, которую можно сделать проще,
зачем делать лишнюю работу?

например задача построить таблицу " кто чем занимается сейчас " во втором случае тривиальна
и пишется прогом с уровнем подготовки " SQL за 21 день ",
в первом же случае все становится намного "интереснее"
в том числе и потому, что на тривиальнейший вопрос "какие вообще виды работ есть?",
первая схема ответа не дает -
где-то как-то запоминайте, документируйте, сканируйте все таблицы...
зачем этот гемор?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109226
Настя Рим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще одна причина использовать 2й вариант - адекватная поддержка таких связей в ORM - работать даже удобней, чем с отдельными таблицами по "типу работ".
Также вас поймут другие программисты, и на такую структуру вы сможете навешать и нормальные шаблоны программирования и вообще жить спокойно.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109234
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneChopпыпысы. как показывает моя личная практика - раньше или позже добавляться будет,
скорее всего захочется что-то добавить сразу после введения в эксплуатацию,
например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая",
все, приехалиЛюди возьмум и добавят еще одну таблицу. Или они должны принести клятву на крови - отныне, мол, в схему не будет добавлено ни одной новой таблицы!и перепишут заодно какую-то часть функционала...
потратят на это время и деньги

прорабу Васе плевать на клятвы РП Пети...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109239
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopкто, она?
Статистика, что ж еще.

Chopмне, как ленивому программисту, лениво выполнять лишнюю работу, которую можно сделать проще,
зачем делать лишнюю работу?
А почему вы, собственно, уверены, что так будет проще? Мне лично это совершенно неочевидно. (Проще всего вообще счетчики в "фио" напихать, кстати)

Chopнапример задача построить таблицу " кто чем занимается сейчас " во втором случае тривиальна
и пишется прогом с уровнем подготовки " SQL за 21 день ",
Я, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.

Chopв первом же случае все становится намного "интереснее"
в том числе и потому, что на тривиальнейший вопрос "какие вообще виды работ есть?",
первая схема ответа не дает -
где-то как-то запоминайте, документируйте, сканируйте все таблицы...
зачем этот гемор?
Вы не подскажете, системный каталог изучают на 22 дне обучения?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109243
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?

В том, что в запросе будет перечислено много таблиц.
Точнее, ужас не в этом, а в том, что во всех запросах, связанным с количеством работы, будет перечислено много таблиц. А таких запросов может быть, например, сто или тысяча. Отчеты, экспорты, SQL-макросы в Excel'ах продвинутых юзеров...

Author the new oneЛюди возьмум и добавят еще одну таблицу.

...и должны будут добавить еще один UNION во все запросы. В сто или тысячу.

А если в какой-то запрос добавить UNION забудут, он будет молча и весело выдавать неверные данные. Без учета новой косьбы. Несколько месяцев подряд. Вот тут-то кому-то и захочется крови...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109248
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopAuthor the new oneпропущено...
Люди возьмум и добавят еще одну таблицу. Или они должны принести клятву на крови - отныне, мол, в схему не будет добавлено ни одной новой таблицы!и перепишут заодно какую-то часть функционала...
потратят на это время и деньги

прорабу Васе плевать на клятвы РП Пети...
А может, и голые при луне танцевать будут. Вы когда додумываете - не останавливайтесь.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109250
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъкак Вы объясняете преимущества в.2 человеку 100 раз плевать хотевшему на всякие там "нормализация" и т.д.?


Если человеку 100.00 раз плевать на нормализацию, ему должно быть 200.00 раз плевать на структуру таблиц.

Пусть набросает эскиз пользовательского интерфейса, и сделайте ему как он хочет. А в базе данных - EAV. Назло :-)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109265
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherAuthor the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?

В том, что в запросе будет перечислено много таблиц.
Уже довольно давно существует такое полезное изобретение как view.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109269
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneChopкто, она?Статистика, что ж еще.с чего вы это придумали?
Author the new oneChopмне, как ленивому программисту, лениво выполнять лишнюю работу, которую можно сделать проще,
зачем делать лишнюю работу?А почему вы, собственно, уверены, что так будет проще? Мне лично это совершенно неочевидно. (Проще всего вообще счетчики в "фио" напихать, кстати)сочуйствую,
попробуйте еще раз перечитать мой пост,
обратите внимание на фразу "какие вообще виды работ есть?", например
во втором пример пишете обычный дистинкт,
в первом же - проявляете чудеса собственной крутизны программиста БД
Author the new oneChopнапример задача построить таблицу " кто чем занимается сейчас " во втором случае тривиальна
и пишется прогом с уровнем подготовки " SQL за 21 день ",Я, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.пример в студию - делов то...
Author the new oneChopв первом же случае все становится намного "интереснее"
в том числе и потому, что на тривиальнейший вопрос "какие вообще виды работ есть?",
первая схема ответа не дает -
где-то как-то запоминайте, документируйте, сканируйте все таблицы...
зачем этот гемор?Вы не подскажете, системный каталог изучают на 22 дне обучения?у вас таки проблемы с русским языком...
это в первом примере на 22-м дне обучения прог сможет написать требуемый запрос,
а не в этом
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109289
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopс чего вы это придумали?
С ваших бодрых выводов, что и как будет работать.


Chopсочуйствую,
попробуйте еще раз перечитать мой пост,
обратите внимание на фразу "какие вообще виды работ есть?", например
во втором пример пишете обычный дистинкт,
в первом же - проявляете чудеса собственной крутизны программиста БД
Если выборка из системного каталога для вас - чудеса крутизны, то...

ChopЯ, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.пример в студию - делов то...
Напишите свой - будет аналогично. Хотя, боюсь, от вас всего можно ожидать.

ChopВы не подскажете, системный каталог изучают на 22 дне обучения?у вас таки проблемы с русским языком...
это в первом примере на 22-м дне обучения прог сможет написать требуемый запрос,
а не в этом
Ясно, до каталога еще не дочитали.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109323
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneChopс чего вы это придумали?С ваших бодрых выводов, что и как будет работать.вы ошиблись
Author the new oneChopсочуйствую,
попробуйте еще раз перечитать мой пост,
обратите внимание на фразу "какие вообще виды работ есть?", например
во втором пример пишете обычный дистинкт,
в первом же - проявляете чудеса собственной крутизны программиста БДЕсли выборка из системного каталога для вас - чудеса крутизны, то...для меня - лезть в системный каталог вместо того чтобы нормально спроектировать БД - признак глупости разработчика, а не его крутизны,
крутизной это может считать только тот, кто так делает
Author the new oneChopпример в студию - делов то...Напишите свой - будет аналогично. Хотя, боюсь, от вас всего можно ожидать.понятно - написать не можете,
не я утверждал, что
Author the new oneЯ, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.- не мне это это и обосновывать
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109336
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherAuthor the new oneИ, с другой стороны, в чем особый ужас построения запроса не по одной таблице, а по нескольким?В том, что в запросе будет перечислено много таблиц.
Точнее, ужас не в этом, а в том, что во всех запросах, связанным с количеством работы, будет перечислено много таблиц. А таких запросов может быть, например, сто или тысяча. Отчеты, экспорты, SQL-макросы в Excel'ах продвинутых юзеров...да разве ж это ужас?
вспомнил все места, где надо изменить код, сел да переписал...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109358
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopдля меня - лезть в системный каталог вместо того чтобы нормально спроектировать БД - признак глупости разработчика, а не его крутизны,
крутизной это может считать только тот, кто так делает
Правильно - системный каталог - это для дураков, я тоже давно это подозревал. Для нас, дураков, его даже застандартизировали.

ChopЯ, признаться, не вижу проблемы - и в том, и в другом случае все сведется к одинаковому запросу.- не мне это это и обосновывать
Да уж не вам, это точно.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109364
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopвспомнил все места, где надо изменить код, сел да переписал...
А мы, дураки, все как-то ленимся переписывать... и поделом, и правильно, грешные мы.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109389
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
Cane Cat Fisherъкак Вы объясняете преимущества в.2 человеку 100 раз плевать хотевшему на всякие там "нормализация" и т.д.?


Если человеку 100.00 раз плевать на нормализацию, ему должно быть 200.00 раз плевать на структуру таблиц.

да, вот, в том-то и дело, что "на структуру" ему "не всё равно"
это одно из его требований - "я должен понимать структуру, и "что и где", в этой структуре - обозначает"

человек, очень хорошо разбирается в Экселе, вот отсюда и у него, такое представление о структуре БД
т.е. - у него есть Эксел.файл со страничками "Косьба", "Забивание" (и ещё хз скольких подобных),
откуда он всякими ВПР-ами - вытягивает нужные ему данные, ...

вот и схему в БД о "видит" - также как в том, своём злосчастном Экселе
а мои "так в БД - не делают" - разбиваются об его "а почему ?"

вот, как бы, такая, у этого топика, "вводная" :)

Cane Cat FisherПусть набросает эскиз пользовательского интерфейса, и сделайте ему как он хочет. А в базе данных - EAV. Назло :-)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109397
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
ъвот и схему в БД о "видит" - также как в том, своём злосчастном Экселе

да, и, соответственно, у человека "виденье" добавления новой таблицы в БД == добавлению нового листа в книгу Экселя,
мол "чё там такого - нужно добавим, делов-то ..."
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109444
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ълично моё мнение -в.2
Предложу вариант 3. Т.к. оба твоих варианта мне не понравились...

РаботникиИДФИОдр.поля
Комплексные работыИДНазваниедр.поля
СоставляющиеИДНазваниедр.поля
Состав работИДИД Комплексной работыИД Составляющей
Выполнение работИДДата началаДата завершенияИД Комплексной работыдр.поля
Состав работниковИДИД Выполнение работИД Работника
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109524
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneChopдля меня - лезть в системный каталог вместо того чтобы нормально спроектировать БД - признак глупости разработчика, а не его крутизны,
крутизной это может считать только тот, кто так делаетПравильно - системный каталог - это для дураков, я тоже давно это подозревал. Для нас, дураков, его даже застандартизировали.у вас точно проблемы с русским языком,
не "системный каталог", а "использование системного каталога вместо простого запроса"
Author the new oneChop- не мне это это и обосновыватьДа уж не вам, это точно.конечно, не мне...
вы, похоже не только русского языка не понимаете,
но и не в курсах, что бремя доказательств лежит на плечах утверждающего

не хотите доказывать - так и запишем: "утверждение без доказательств"

в виду всего вышеизложенного - прощайте, батенька,
я не настроен занимать троллингом,
потому - в игнор
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109529
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъда, вот, в том-то и дело...бегите оттуда, если есть куда...
если нет - терпите и готовьтесь разгребать и выгребать
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109619
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopпотому - в игнор
Буду Вам в высшей степени обязан.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109621
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop что бремя доказательств лежит на плечах утверждающего
За это отливание в граните - отдельное большое человеческое спасибо!
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109690
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
krvsaълично моё мнение -в.2
Предложу вариант 3. Т.к. оба твоих варианта мне не понравились...

РаботникиИДФИОдр.поля

Комплексные работыИДНазваниедр.поля
СоставляющиеИДНазваниедр.поля
Состав работИДИД Комплексной работыИД Составляющей
Выполнение работИДДата началаДата завершенияИД Комплексной работыдр.поля
Состав работниковИДИД Выполнение работИД Работника
Спасибо

Но эта "комплексная работа" - она одна-единственная и никакой другой - нет и не будет
(в определённом смысле, эта комп.работа - это абстракция, в таком смысле как я её представил в старт.посте - "СтроительствоКоммунизма", т.е. - даже если какая-то "единичная" работа появится в будующем, - она всё равно будет входить в эту "комплексную работу" - "СтроительствоКоммунизма", вот ..)

И, имхо, если Вашу схему переделать с учётом единственности этой "комплексной работы" - получим ту же схему №2
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109759
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъчеловек, очень хорошо разбирается в Экселе, вот отсюда и у него, такое представление о структуре БД

Ну что ж. Хорошо хоть, что в Экселе, а не в Ворде или Паинте. Иначе Вам было бы сложнее... :-)

...Психологи называют это "синдром утенка". Суть в том, что свежевылупившийся утенок осматривается вокруг, и первое что он увидит, достаточно большое и теплое - это и будет его мама, за ним надо ходить, пищать и делать все как она. Хотя на практике это может оказаться курица, кошка, или Конрад Лоренц ;-)

Это очень частое явление в IT, когда первый интимный опыт знакомства с каким-либо языком, инструментом или концепцией оказывает настолько сильное влияние на несформировавшийся характер, что все остальные технологии представляются "увеличенными или искаженными копиями" первого.

Однако клепать реляционную БД по образцу экселовских листов - глубоко порочный путь. Стукните по столу кулаком, а лучше "Введением в СУБД" К.Дж.Дейта (780 страниц), и скажите, что внутри в БД все делается иначе, чем в Экселе.

А интерфейс, опять же говорю, сделайте экселоподобный, с листами. Пусть наслаждается.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109903
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъИ, имхо, если Вашу схему переделать с учётом единственности этой "комплексной работы" - получим ту же схему №2
Отнють...
У тебя связь с людьми не продумана...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38109906
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и с составом работ, для одной единственной работы, такая же фигня...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110016
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
Cane Cat Fisher...Психологи называют это "синдром утенка".
да, это Вы точно подметили :)
спасибо! возьму "на вооружение" :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110028
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
Chopпыпысы. как показывает моя личная практика - раньше или позже добавляться будет,
скорее всего захочется что-то добавить сразу после введения в эксплуатацию
,
например окажется, что прорабу Васе нужно не просто "косить", а "косить забивая",
все, приехали
честно говоря, и моя "практика" - показывает это же,
даже больше скажу - ещё не было случая, что бы так не было :)

ну и я конечно об этом сказал ...
ответы были в духе :
ъкриком орёт - "не будет ничего добавлятся, век воли не видать" !
ъъвот и схему в БД о "видит" - также как в том, своём злосчастном Экселе

да, и, соответственно, у человека "виденье" добавления новой таблицы в БД == добавлению нового листа в книгу Экселя,
мол "чё там такого - нужно добавим, делов-то ..."
на возражение, что прийдётся переписывать логику расчета в ХП, так как появится новая таблица - ответ у человека такой:
- при добавлении нового типа работы - логику прийдётся переписывать тоже, так, как у этого нового типа работы - своя обл. применимости - он применяется в одних отчетах, и не применяется в других ...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110031
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъ,

А в варианте структуры 1 как 2 работы связываются в супер-работу? Или это не нужно?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110048
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
MasterZivъ,

А в варианте структуры 1 как 2 работы связываются в супер-работу? Или это не нужно?
не нужно,

я, видимо, с этой "комплексной работой", всех несколько запутал ...
есть много разных работ - они вполне самодостаточные, сами по себе (но являются составными частями одного большого продукта/проекта/работы/дела)

вот, некто А:
- сегодня - копал 2ч
- вчера - косил 5ч
- позавчера - программил на Java 10ч

и дальше, мне нужно будет "крутить" это разное участие А в работе,
в "очень разных" разрезах - работал физически/умственно, в коллективе/лично и т.д.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110049
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
вот я подумал, и, мой вопрос можно переформулировать так:

Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110065
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ъ Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры?

А так ли это? Если есть куча ничем не связанных сущностей таблиц с полями name и id редко их объединяют в одну.

А вашего заказчика я в его экселе попросил бы построить сводную таблицу где по горизонтали люди а по вертикали виды работ и показал бы как легко это делается в случае, если все на одном листе, и какой геморрой в случае, если на нескольких :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110073
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъ, и где нашли такую глупость в качесте "не рекомендации"? :)

В БД НЕ рекомендуется избыточность хранения данных... борьба с которой зовется нормальными формами (2НФ, 3НФ - типовой уровень, есть ещё 4НФ, 5НФ - встречается крайне редко).

Однако, "одинаковость" таблиц сюда никоим образом не относится. Таблицы могут быть полностью одинаковыми, но хранить совершенно разные данные и для разных целей... одно, другому - никак не мешает.
Это даже далеко не всегда есть "денормализация", как тут 13729784 многие подумали... :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110085
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Arhat109как тут 13729784 многие подумали... :)

А там разве нет избыточности данных? Например, наименование товара будет дублироваться в заказе даже в тех случаях, когда оно не менялось, причем, даже если оно менялось, оно будет дублироваться между разными заказами.

Вообще, описанная топикстартером ситуация тоже про дублирование - только не данных, а структуры. Соответственно, в результате такого дублирования СУБД не знает о том, что по сути дела разные виды работ схожи с точки зрения их учета и их можно обрабатывать одинаково.

Такое структурное дублирование (или уn-рение) приводит к дублированию как работы программиста, так и работы СУБД. (Например, представьте что надо для написания и выполнения простейшего запроса "какие работы выполнял Вася с 8 до 11?" или "на какие работы уходит больше всего времени в этом году?")
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110169
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
F#ъ Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры?

А так ли это? Если есть куча ничем не связанных сущностей таблиц с полями name и id редко их объединяют в одну.

даа, поймали :)

хорошо, давайте так:

Почему в БД не рекомендуется иметь несколько разных таблиц фактов одинаковой структуры?[/
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110185
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъ Почему в БД не рекомендуется иметь несколько разных таблиц фактов одинаковой структуры?[/кем это?
PS есичё, тему не читал ))
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110205
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Почему в БД не рекомендуется иметь несколько разных таблиц фактов одинаковой структуры?

Нет таких рекомендаций. Вы не с той стороны подходите к проблеме. Объяснение - это вписывание прецедента в существующую систему понятий. Если у юзера нет такой системы понятий, вы ничего не сможете ему объяснить. Два варианта: создать такую систему или забить. Забить в данном случае дешевле. Знание букв и цифр - табличного редактора - навыков проектирования вашему юзеру не добавляет. Как факт. А мозг вынести он, судя по косвенным признакам, вполне в состоянии.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110223
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#, если делать как в первой рекомендации - да, есть избыточность данных (Заказы будут не в 3НФ)... там далее есть выделенная из них табличка "проданные товары"... которая по своей структуре может быть даже полностью идентична "каталогу" (даже цену из заказа можно убрать при желании/задаче)... но, опять же "избыточность" - часто также не есть "зло"... :)

В целом, не курите ни чьи "рекомендации" без проверок. Каждое утверждение имеет свои границы применимости, о которых никогда нельзя забывать. :)

Вашу задачу можно делать и так, и этак и даже поперек (EAV)... если барин утверждает что других не будет... сделайте как хочет ... я бы просто по коду расставил банальный switch() с default: "а вот барин утверждал, что сюда не попадем! Скажите ему всё, что о нём думаете, сами..." :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110224
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Arhat109,

Барин, вроде, не настаивает, а спрашивает "почему".

Надо ему просто объяснить что при любом дублировании куча работы будет дублироваться при каждом внесении изменений.

При этом непонятно какие доводы будут за схему номер 1 кроме "я так привык".
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110230
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Надо ему просто объяснить что при любом дублировании куча работы будет дублироваться при каждом внесении измений.Например? Не вижу особой разницы, если создать четыре представления и через них работать.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110361
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,

В таких случаях меня учили отвечать "патамушто" и "из конструктивных соображений". Смотря кому отвечаем. :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110371
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

На предыдущий совет про "по коду расставить ...":

ничто так не отрезвляет барина, как ответ проги "Упс. Данная опция отключена по п.1.2.3 ТЗ по указанию ... см. мантис, вопрос 5625, было в ревизии 7890", особенно когда он сам же и нарывается на сообщение. :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110563
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъ Почему в БД не рекомендуется иметь несколько разных таблиц одинаковой структуры?

Такой рекомендации нет. Но иногда несколько таблиц одинаковой структуры косвенно укажут специалисту на возможные ошибки проектирования.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110701
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherНо иногда несколько таблиц одинаковой структуры косвенно укажут специалисту на возможные ошибки проектирования.
Например наш главный конкурент имеет повторение структуры на каждый год.
Т.е. его таблички просто копируются для данных каждого года. И всякое изменеие структуры влечет перестройку всех таблиц и данных по годам...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38110811
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
skyANAF#Надо ему просто объяснить что при любом дублировании куча работы будет дублироваться при каждом внесении измений.Например? Не вижу особой разницы, если создать четыре представления и через них работать.

Какие 4 представления? На какой субд? При этом в любом случае при изменении структуры надо будет менять n таблиц.

Например, в MS SQL updatable views обладают существенными ограничениями. И главное, зачем это всё?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38111350
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Какие 4 представления?v_Работнике, v_СтроительствоКоммунизма, v_Косьба и v_Забивание
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38111500
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
skyANA,

а зачем столько вью?
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38136778
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поможет только смена работы. Если шэф не шарит в основах СУБД и его ещё не уволили, то скорее всего у него очень большой орган есть которому Вы не противопоставите даже Нобелевскую премию. Есть правда вариант деградировать до уровня шэфа и отращивать десятилетиями такой же орган, но... Может проще работу поменять :) На своём опыте - 2.5 года такой "работы" ничего толкового не дали. Поменял работу - совсем другое дело.

ЗЫ: Ещё ж такой момент: если он не понимает таких простых вещей, то что уже говорить за реально сложные?!
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38137478
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
BJValentineПоможет только смена работы. Если шэф не шарит в основах СУБД и его ещё не уволили, то скорее всего у него очень большой орган есть которому Вы не противопоставите даже Нобелевскую премию. Есть правда вариант деградировать до уровня шэфа и отращивать десятилетиями такой же орган, но... Может проще работу поменять :) На своём опыте - 2.5 года такой "работы" ничего толкового не дали. Поменял работу - совсем другое дело.

ЗЫ: Ещё ж такой момент: если он не понимает таких простых вещей, то что уже говорить за реально сложные?!
Это не начальник! это - заказчик !

И заказчик, на своём каком-то, "не профессиональном" уровне - достаточно "шаряший",
и "с желанием", в будующем, какие-то возникающие вопросы - решать самому : запросики, там, пописывать, отчеты делать и т.д.

Отсюда и вот такие его требования.
ъда, вот, в том-то и дело, что "на структуру" ему "не всё равно"
это одно из его требований - "я должен понимать структуру, и "что и где", в этой структуре - обозначает"

если вернутся опять к той, предложенной им схеме

то начиналось всё с того, что половину атрибутов работника (Адрес например, для определённости) - он "запихнул" в эти таблицы работ ("Косьба", "Забивание").
С этим, мне удалось его "переубедить, простым примером - то что, в конце концов, всё закончится тем, что у одного и того же работника, в разных таблицах работ - будет разный Адрес, и никто, никогда об этом не узнает ...
То есть - не "напирая" на различные "словеса", типа "нормализация", "дублирование данных" и т.д. ... - просто на примере, "чем это в конце концов заканчивается" :)

Вот, что-то такое же, "простое и убедительное" я хотел услышать по сабжевому вопросу:
- выбор между 2-мя принципиально разными возможностями построения схемы данных, в части "Работ".
Одна общая таблица + справочник типов работ
или - отдельная таблица, под каждый тип работы


И, насколько я понял из обсуждения, никаких таких простых слов/примеров, для данного вопроса - нет.
И 1-ый и 2-ой вариант - имеют право на существование, и решаться должно, в каждом конкретном случае, "персонально".
...правда, из каких критериев "решаться" - всё равно не понятно ...
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38137636
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если заказчик, то надо потерпеть его. Грустно это когда заказчик лезет во внутреннюю организацию программы не имея внушительного опыта проектирования. Ну, а что поделать? Сделай ему велосипед с квадратными колёсами как он хочет - единственное что приходит в голову. А за поддержку сего продукта денежку брать не забывай. Если потребуется таки добавить ещё один или (что ещё лучше) несколько типов работ - бери много денег. Потому, что в этом случае объём работ существенно вырастет:

- Моделирование новых таблиц (включая индексы, ключи, триггеры etc.);
- Создание скриптов для этих таблиц, модификация/создание представлений;
- Администрирование доступа к новым объектам;
- Настройка репликации этих таблиц;
- И прочее, прочее, прочее.

Справа от каждого пункта надо написать цену. Моё мнение - дураки должны платить, причём прямо пропорционально своей тупости (а лучше по экспоненте! ))) ). Природа наказывает каждого за тупость, это нормально и это хорошо :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38137645
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если он такой "шарящий", пусть себе сам программу пишет ))) Видать не достаточно шарящий всё-таки. А структуру детскую просит скорее всего потому, что запросы писал только в мастере. У меня уже подобных ситуаций было 100500, возможно твоя ситуация иная, смотри сам.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38137698
ъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ъ
Гость
BJValentineЕсли заказчик, то надо потерпеть его. Грустно это когда заказчик лезет во внутреннюю организацию программы не имея внушительного опыта проектирования. Ну, а что поделать? Сделай ему велосипед с квадратными колёсами как он хочет - единственное что приходит в голову.
...
ну да, вот так сейчас и решил делать (точнее - сделал) :)
сказал ему, что
- твоя схема имеет "один большой плюс" - ты её выбрал сам!
и за все "негаразды" с ней - будеш отвечать сам!
может и не будет "негараздов" - а может и будут ...
я считаю, что мой вариант (2-ой который, с общей таб.+справочник) - лучше, но аргументированно это доказать - не могу ... значит делаем так, как ты настаиваеш ... вот ... :)
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38137732
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Второй вариант лучше конечно. Тут уже расписали вдоль и поперёк почему. Но дядя похоже не достаточно хорошо умеет писать запросы поэтому ему нада структура попроще. Одна таблица на все типы работ это выше уровень абстракции чем для каждого типа работ своя таблица. А не все умеют работать с абстракциями. Это то и отличат программиста от того, кто заказывает программы.

Это как моего коллегу заставляли для каждого справочника писать отдельную форму, а он написал один компонент реализующий функционал ЛЮБОГО справочника. Понятно, что для поддержки и развития этой конфетки надо ум хороший, но есть места где ума дефицит. Вот и получается, что не имея денег покупают запорожец, ну а мэрса хотят все без исключения )))
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38137992
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно придумать такой тип задач, где вариант 1 будет лучше.

Пример - случаи, когда косьба и забивание являются суть разными вещами и обладают своим набором атрибутов.
Но даже в этом случае вопрос, что лучше - делать разряжённую общую таблицу или сводить общие атрибуты в одну, а на остаток делать свои таблицы-расширения, открыт.

Логическое отличие между вариантом 1 и 2 - возможность на общую таблицу констрэинтов на уникальность понавешать.
В конечном счёте всё упрётся в вопросы производительности, т.е. в физический дизайн, частью которого дизайн таблиц и является (можно же действительно понаделать дополнительных view'х, и для приложений различия между вараинтом 1 и 2 (с учётом замечания про constraints) просто исчезнут).

Отталкиваться надо от функциональности системы. Какие запросы будут использоваться чаще всего.
Только в этом свете правильно выявляются сущности, которыми оперирует система.

Если запросы в основном будут сразу по всем типам работ (что вероятней всего, это зависит от ваших задач), эффективней будет вариант 2; если работы разных типов никогда совместно не участвуют в запросах/выборках, то эффективней вариант 1. Разница в стоимости - раза в два.
Можно (если СУБД умеет) поиграться с партиционированием по типу работ.
...
Рейтинг: 0 / 0
Нормализация для "тёмных" :)
    #38138225
BJValentine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

авторЕсли запросы в основном будут сразу по всем типам работ (что вероятней всего, это зависит от ваших задач), эффективней будет вариант 2; если работы разных типов никогда совместно не участвуют в запросах/выборках, то эффективней вариант 1. Разница в стоимости - раза в два.

Правильно разработанный (кластерный) индекс уменьшит стоимость второго варианта почти в два раза :)
...
Рейтинг: 0 / 0
65 сообщений из 65, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нормализация для "тёмных" :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]