Witam, chciałbym się dowiedzieć, która z podanych niżej opcji jest bliższa idealnemu projektowi bazy danych.. a może jest coś innego co nie przyszło mi do głowy?
Dla jak najjaśniejszego przedstawienia problemu posłużę się przykładem.
Wyobraźmy sobie, że tworzymy jakąś grę i tworzymy bazę danych dostępnych w niej jednostek.
Jednostki mogą, ale nie muszą, posiadać statystykę "atak". Dla przykładu należy podkreślić, że atak = 0, obraz brak ataku ( null ) to dwie różne wartości w naszej grze. Przykładowo, jednostka o wartości ataku 0 może dostać jakiegoś tymczasowego buffa od innej jednostki, ale jednostka z wartością ataku null takiego buffa dostać nie może.
Sedno pytania - czy projektując bazę danych przechowującą listę wszystkich jednostek lepiej jest zrobić dla każdej jednostki kolumnę o nazwie "atak", wtedy tabela mogłaby wyglądać tak: Jednostki[id, name, atak] a kolumna atak mogłaby przyjąć inta lub nulla.
Czy może lepiej jest zrobić osobną tabelę w relacji jeden do jeden przechowującą dane o ataku dla jednostek, które ten atak posiadają. Wtedy wyglądałoby to tak: Jednostki[id, name] Atak[jednostka_id, wartość]
Z góry dziękuję za rozwianie moich wątpliwości (: