Нормализовать таблицу SQL - PullRequest
2 голосов
/ 18 августа 2010

Можем ли мы далее Нормализовать эту таблицу 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 голосов
/ 22 августа 2010

Это выглядит подозрительно как комбинация таблица 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

.
Это позволит сделать проще и быстрее: проверять ограничения, индексы и запросы.

2 голосов
/ 18 августа 2010

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

alt text

1 голос
/ 18 августа 2010

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

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

0 голосов
/ 19 августа 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...