Jestem w trakcie projektowania bazy danych i zastanawiam się nad moimi początkowymi decyzjami projektowymi ...
Typy produktów są następujące ... Modele, części, zestawy części zamiennych i opcje.
Opcja A (pierwszy projekt): planowałem mieć osobne tabele dla powyższych typów produktów. Powiedziałbym, że około 75% pól będzie takich samych w każdej tabeli.
Każdy typ produktu utworzyłem jako osobne tabele ze względu na powiązania, które muszę między nimi utworzyć. Na przykład model może mieć wiele opcji, a opcja może mieć wiele modeli. Opcja może również mieć wiele części, a część może mieć wiele opcji ... i tak dalej ...
Opcja B: Zamiast osobnych tabel mogłem stworzyć tabelę o nazwie Produkt, która obejmuje model, część, zestawy części zamiennych i opcje. Mógłbym mieć jedno pole o nazwie typ, aby rozróżnić model, opcje itp. Przypuszczam, że wadą jest to, że kilka pól nigdy nie będzie używanych (lewa null) dla niektórych typów produktów. Zgaduję, że w tym miejscu mogłyby się pojawić „nie najlepsze praktyki”.
Opcja B znacznie zmniejszyłaby złożoność projektu db. Nie musiałbym też martwić się o odniesienie do wielu tabel podczas pobierania danych do zapytań ...