Что это за структура? - PullRequest
       1

Что это за структура?

2 голосов
/ 08 июля 2010

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

TableX
Columns: isMonday, BeginingHourMonday, EndHourMonday, isTuesday, BeginingHourTuesday, EndHourTuesday and so on...

Это не sql? Я не спросил человека, который создал, потому что мне стыдно: $

Bye.

Ответы [ 5 ]

1 голос
/ 08 июля 2010

это полностью ненормированные данные. нет-sql вид. Мне просто интересно, почему месяц не включен. это может увеличить фактор нормализации.

1 голос
/ 08 июля 2010

@ Брайан Гидеон прав.Как и @iamgopal.И я тоже, когда говорю «это зависит от характера данных, которые моделируются и хранятся в базе данных».

Если это список дней с определенными атрибутами / свойствами для каждого дня, тогда даЯ бы назвал это денормализованным - и 9 раз из 10 (или более) это, вероятно, будет иметь место.(Я помню базу данных с 13 столбцами, по одному на каждый месяц в году и по одному на общую сумму, и в конце года пользователь добавил еще 13 столбцов на следующий год.

Если это описание, скажем, рабочего времени в течение недели, когда каждый раз, когда запрашиваются данные, вам всегда требуется информация для каждого дня недели, тогдастрока будет представлять одну «единицу» данных (каждый столбец зависит от первичного ключа таблицы и всего такого), и было бы неэффективно разбивать данные на более мелкие части.

И, конечноЭто может быть комбинация двух данных, которые первоначально были нормализованы до одной строки в день, а затем намеренно денормализованы по соображениям производительности.Возможно, 9 из 10 им нужна информация за недели, и анализ показал огромный прирост производительности, объединяя эти данные в один ряд?

Как это так, без дополнительной информации об использовании и рациональном подходе.перешагнуть через @iamgopal и опровергнуть его.

1 голос
/ 08 июля 2010

Это называется календарной таблицей.

Это очень распространенный и невероятно полезный подход к решению и решению большого количества запросов, относящихся к дате и времени.Он позволяет вам искать, сортировать, группировать или иным образом добывать данные интересным и умным способом.

0 голосов
/ 09 июля 2010

Глядя на эту таблицу. Я не вижу веских причин для этого, даже по причине производительности.

Давайте посмотрим, если я изменю isMonday, isTuesday и т. Д. На ID_Day, я все равно получу ту же скорость и логику. И если я изменю BeginingHourMonday на StartHour, а EndHourMonday на EndHour, я все равно получу тот же эффект.

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

Привет

0 голосов
/ 08 июля 2010

Похоже на структуру расписания для данной недели.
Если нормализовать, это может выглядеть как

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

...