Нормализация таблицы SQL
Можем ли мы далее нормализовать эту таблицу Sql
Структура есть
Первичный ключ - ID,Date,NAme,Type
ID Date Name Type Value
-----------------------------------------------------
1 08/15/2010 Rating A+ 10
1 08/15/2010 Rating A- 10
1 08/15/2010 Composition MultipleChoice 33
1 08/15/2010 Composition YESNO 33
1 08/15/2010 Composition Fillin 33
1 08/16/2010 Rating A+ 30
1 08/16/2010 Rating A- 10
1 08/16/2010 Composition MultipleChoice 25
1 08/16/2010 Composition YESNO 50
1 08/16/2010 Composition Fillin 25
И так далее
4 ответа:
Это подозрительно похоже на комбинацию таблицы EAV и таблицы истории. Какова его истинная цель? Каковы связанные таблицы?
Основываясь на ограниченной информации, вы бы нормализовали ее, превратив в чистую таблицу истории.Rating
иComposition
не должны быть разделены по строкам, но должны быть в прилично именованных столбцах. Что-то вроде этого:ID Date Rating_A+ Rating_A- MultipleChoicePercent YESNOPercent FillinPercent --------------------------------------------------------------------------------------------- 1 08/15/2010 10.0 10.0 33.3 33.3 33.3 1 08/16/2010 30.0 10.0 25.0 50.0 25.0
.
Это позволит упростить и ускорить проверку ограничений, индексов и запросов.
Будут ли типы и имена из определенного набора? Вы можете разбить их на таблицы lib и ссылаться на них. Но это единственное, что приходит мне в голову.
Например, если ваши типы всегда будут просто A1, A2, B1, B2 и C1, вы можете сделать их в отдельную таблицу, а затем вместо постоянного ввода A1 в базу данных, вы можете иметь внешний ключ к таблице типов, которая ссылается на строку A1.