Mam przypadek użycia, w którym muszę modelować dane referencyjne dla np. różne smaki lodów. Powiedzmy, że mam 50 smaków lodów: -Projekt schematu bazy danych dla dużej liczby kolumn
- 20 atrybutów np. temperatura zamarzania, kremowość będą wspólne dla wszystkich smaków
- każdy smak lodów ma 20-30 atrybutów, które nie będą dzielone z innymi smakami, np. : -
- truskawkowe lody mogą śledzić cierpkość, owoce procent itd
- czekoladowe lody mogą śledzić poziom goryczy, kakao itp
Jak bym Model ten zgrabnie danych w bazie danych model, wyłącznie z punktu widzenia przechowywania/wyszukiwania?
Opcje można myślę: -
- Jedna tabela na smaku. Będzie to wymagało 50 tabel, a każda tabela będzie miała 20 kolumn, które będą się nakładać na siebie, a kolejne 20-30 będzie atrybutem unikalnym dla smaku.
- Plusy: modele danych każdego smaku całkiem dobrze
- Wady: kolumna pokrywają i duża liczba tabel potrzebne
- jedna tabela dla wszystkich smaków. Będzie to wymagało tylko 1 tabeli, ale będzie wymagało ponad 1000 kolumn, z których większość będzie pusta.
- Plusy: Modele danych z lodami w ogóle, całkiem dobrze
- Wady: duża liczba kolumn i znaczną kwotę „zmarnowane” przestrzeni
- Jedna tabela klucz-wartość dla wszystkich smaków, z ID smaku, nazwa atrybutu i wartość atrybutu.
- Zalety: najprostsze, aby utworzyć i wstawić dane
- Minusy: trudniej wyodrębnić, nie naprawdę model danych per se, trudno tworzyć ograniczeń dla atrybutów, lub do atrybutów związanych z innymi atrybutami
Prawdopodobnie lepiej pasuje do [dba.se] –
W mojej długiej, jeśli nie, szczególnie wyróżniającej się karierze, * nigdy * nie miałem pracy związanej z projektowaniem baz danych DBA. IMO to obowiązuje na StackOverflow. –
dziękuję! większość, jeśli nie całość naszego projektu db jest wykonywana przez programistów też ... – Ronbear