Нормализация таблицы 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 2

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

.
Это позволит упростить и ускорить проверку ограничений, индексов и запросов.

Вы могли бы сделать это

текст Alt

Будут ли типы и имена из определенного набора? Вы можете разбить их на таблицы lib и ссылаться на них. Но это единственное, что приходит мне в голову.

Например, если ваши типы всегда будут просто A1, A2, B1, B2 и C1, вы можете сделать их в отдельную таблицу, а затем вместо постоянного ввода A1 в базу данных, вы можете иметь внешний ключ к таблице типов, которая ссылается на строку A1.

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