Я пытаюсь создать базу данных для строительного склада (там, где хранятся материалы для строительства). Мне нужно знать все хранящиеся материалы (продукты), все проданные продукты и все оставшиеся продукты. Подумываю сделать так:Борьба с БД дизайн/связь
Products--> Deliver <--Depot (many to many) - here I see all the products in.
Depot--> Sell <--Products (many to many) - here I see what I have sold.
And what is left: To make a difference between "Deliver" and "Sell".
Есть ли что-то правильно здесь? У вас есть другая идея? Спасибо за помощь.
Итак, вы говорите, что я буду есть таблица Продукты, Депо и движение, и это будет многие ко многим продукт -> Движение <- Depot, и в таблице Movement у меня будут поля внешних ключей как Product, так и Depot и два столбца с именем In и Out. In-positive, Out-negative. Как это? –
@MorarMihai - Я отредактировал свой ответ, чтобы включить образцы столбцов. Идея состоит не в том, чтобы иметь два столбца: _in_ и _out_. Идея состоит в том, что каждая транзакция имеет две записи, одна показывает движение (количество <0), а другая показывает движение в (количество> 0). Эти две половины транзакции могут быть связаны с инволюцией FK или с общим идентификационным номером транзакции, в зависимости от того, что вы предпочитаете. Получение позиции на складе для любого продукта в любом депо в любой момент становится прямым запросом SUM. –
Спасибо, Джоэл, ты мне помог. –