Я зараз розробляю базу даних, і я маю другі думки щодо своїх початкових дизайнерських рішень ...
Типи виробів такі: Моделі, запчастини, комплекти запчастин та варіанти.
Варіант A (перший дизайн): я планував створити окремі таблиці для вищевказаних типів продуктів. Я б сказав, що приблизно 75% полів буде однаковим у кожній таблиці.
Я створив кожен тип продукту як окремі таблиці через асоціації, які мені потрібно створити між ними. Наприклад, Модель може мати багато варіантів, а варіант може мати багато моделей. Опція також може мати багато частин, а частина може мати багато варіантів ... і так далі ...
Варіант B: Замість того, щоб мати окремі таблиці, я міг би створити таблицю під назвою Продукт, яка включає в себе модель, частину, комплекти заміни та параметри. Я міг би мати одне поле під назвою типу для розмежування моделі, варіантів і т. Д. Я вважаю, що нижня сторона - кілька полів ніколи б не використовувались (ліві нулі) для певних типів продуктів. Я здогадуюсь, що саме тут почали грати "не найкращі практики".
Варіант B значно зменшить складність дизайну db. Мені також не доведеться турбуватися про посилання на купу таблиць під час витягу даних для запитів ...