Aby zachować 1 normalną formę, jedną z rzeczy, których należy unikać, jest powtarzanie grup. Jak w zamiast:Projekt DB: Pierwsza normalna forma i powtarzające się grupy
CustID Name Address Phone1 Phone2 Phone3
102 Jerry 234 East.. 555-2342 555-9854 555-2986
Należy utworzyć drugą tabelę numer telefonu i następnie łączyć można dostać:
CustID Name Address Phone
102 Jerry 234 East.. 555-2342
102 Jerry 234 East.. 555-9854
102 Jerry 234 East.. 555-2986
Czasami jest to trochę bardziej niejednoznaczne i trudno powiedzieć, kiedy grupa nagłówków kolumn się kwalifikuje. Na przykład, powiedzmy, że masz obecnie dwa testy, które uruchamiasz na każdym sprzęcie. A twój pierwszy projekt DB daje podejście najbardziej pozioma:
projekt 1
SN Test1_Max Test1_Min Test1_Mean Test2_Max Test2_Min Test2_Mean
2093 23 2 15 54 -24 45
Oczywiście, jest to powtarzająca się grupa, która mogłaby znacznie łatwiej być reprezentowane (na sprzężenie pomiędzy „części” oraz "Testy"):
konstrukcyjne 2
SN Test Max Min Mean
2093 1 23 2 15
2093 2 54 -24 45
jednak może pójść jeszcze bardziej w pionie:
Projekt 3
SN Test Statistic Value
2093 1 Max 23
2093 1 Min 2
2093 1 Mean 15
2093 2 Max 54
2093 2 Min -24
2093 2 Mean 45
jest projektowanie 3 konieczne? Jak zdecydujesz, jak zrobić to w pionie? Jakie są plusy i minusy między projektami 2 i 3? Wygląda na to, że oba można łatwo wybrać lub połączyć z SQL, z korzyścią dla projektu 3, ponieważ można łatwo dodać nową statystykę bez faktycznego modyfikowania struktury tabeli.
Ale zanim ktokolwiek pójdzie i powie, że im bardziej pionowy, tym lepiej, są chwile, w których jest bardziej niejednoznaczny. Jak:
Projekt 4
SN AverageCurrent (mA) BatteryCapacity (mA)
2093 200 540
Może zamiast być:
Projekt 5
SN mA_Measuremnt Value
2093 AverageCurrent 200
2093 BatteryCapacity 540
Chociaż oba atrybuty są z tej samej domeny (MA), które reprezentują bardzo różne rzeczy w odniesieniu do komponentu. W takim przypadku, czy Design 4 jest lepszy, ponieważ nie jest to ściśle powtarzająca się grupa? Domyślam się, że szukam pewnych kryteriów, aby wiedzieć, kiedy podzielić je na więcej stołów, a tym samym uczynić go bardziej pionowym.
Podsumowując to absurdalnie długie pytanie, , czy należy tylko usuwać i normalizować powtarzające się grupy, jeśli są one dokładnie tą samą domeną: i mają dokładnie to samo znaczenie?. Jeśli tak jest, to tylko przykład telefonu i prawdopodobnie dwa testy w projekcie 1 spełniają te kryteria. Chociaż wygląda na to, że projekt 3 i 5 może przynieść korzyści projektowe, nawet jeśli statystyki w Projekcie 3 mają ściśle inne znaczenie, a cechy AverageCurrent i BatteryCapacity mają zdecydowanie inne znaczenie w Projekcie 5.
Odkładając na bok projekt 2 i 3, przechowywałbym próbki, które tworzą min/mean/max –
Rowland, co jest dobrym punktem; wtedy twoja opinia by się podsumowała - jednak nie wiemy wystarczająco dużo, by powiedzieć. Urządzenie może tylko nagrywać/wydawać min/maks., Itp. –
Zgadzam się z Rowlandem, ale po to, aby wszystko było proste, udawajmy (a może powinienem to edytować ...) to trzy różne wartości statyczne, które wynikały z każdego testu, a nie z działają jak "średni". – JoeCool