Нужен совет о том, как хранить данные

#sql

#sql

Вопрос:

Я создаю приложение для управления запасами. У меня есть таблица под названием Inventory. Он содержит приведенные ниже примеры значений.

ID Элемент Стоимость
1 Курица 10
2 Лук 12

Теперь я хочу создать собранные элементы. (Коллекция элементов). Например, Курица бирияни — это собранный элемент. Для этого мне нужно сохранить требуемые элементы и их количество. (Курица, лук, помидор и т. Д.) Например, мне нужно создать около 100 собранных элементов.

Я хочу получить несколько советов о том, как хранить данные в БД. Нужно ли мне создавать таблицу 100 для каждого собранного элемента или есть какой-либо другой наилучший подход для хранения собранных элементов.

Ответ №1:

Вам нужны две таблицы: одна для объекта «собранный элемент» и одна для элементов в них.

 create table assemblies as (
    assemblyId int primary key,
    . . .
);

create table assemblyItems as (
     assemblyItemId int primary key,
     assemblyId int not null references assemblies (assemblyId),
     itemId int not null references inventory(itemId),
     quantity <number of some sort>
);
 

Примечание: я думаю, вам нужна items таблица, на которую inventory должна ссылаться таблица. Их можно объединить в одну таблицу; items было бы более подходящим именем.