[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите лучший вариант проекта БД
Leo.nardo
Дорогие форумчане!
Неделя дидлайнов, башка не соображает в конец, а тут бывшая попросила помочь написать небольшую программку. Она работает в общепите и программка на эту тему. В общем:


Дано:
Есть n-ое количество продуктов (53) из которых делается k-ое количество (38) блюд. В скобках указаны количества, которые по-идее являются константами, но, как показывает практика, констант не бывает=))

Продукты периодически пополняются. Расходуются же каждый рабочий день на изготовление различных блюд.

Задача:
Сделать так, чтобы пользователь мог вбивать пополнение запасов и указывать количество блюд, которые в тот или иной день приготавливаются, а программа по заданным формулам (напр. 10шт.Блины = 2шт.Яйца + 300гр.муки+200гр.сахара и т.п.), которые вводятся программистом, вычитает соответствующие продукты, после чего формируется отчет об остатках.

Внимание вопрос знатокам:
То, что как минимум две таблицы приход/расход должны быть - и ежу понятно. Но. Сколько в них должно быть полей? 53 (кол-во продуктов) + 1 (дата)? И потом считать сумму по каждому столбцу прихода и вычитать соответствующую сумму расхода?
Или же три поля: дата, id_продукта (вводим третью таблицу - словарик), количество, и потом при подсчете выбирать те же самые суммы, но уже не по полю, а по id_продукта?

Что будет работать быстрее? И что логичнее?
Две "широких" таблицы или три "узких"?

Надеюсь объяснил более-менее внятно...




Спустя 2 часа, 9 минут, 21 секунда (2.09.2012 - 08:02) Michael написал(а):
Я бы делал так:

Таблица продукты
idp pname
1 Яйца
2 Капуста

Таблица Блюда
idb bname
1 Оливье
2 Салат "Цезарь"

Таблица Содержимое блюда
idb idp quantity
1 1 2
1 2 4
2 1 3
2 2 7

Таблица Остатки продуктов
idp quantity
1 10
2 20

Таблица Приход(продукта)
idp quantity date
1 10 ...
2 20 ...

Таблица Расход(блюда)
idb quantity date
1 10 ...
2 20 ...

Получается что с такой системой сможем все операции по предметной области делать.

Спустя 46 минут, 21 секунда (2.09.2012 - 08:49) h234 написал(а):
Для чего таблица "Остатки продуктов"?

Спустя 41 минута, 51 секунда (2.09.2012 - 09:31) Michael написал(а):
Там хранится текущий актив по продуктам, не каждый же раз считать остатки по всем таблицам приходов-расходов.
Таблицы приходов-расходов - чисто по своему назначению - регистрировать операции прихода и расхода, для статистики.

Спустя 3 минуты, 47 секунд (2.09.2012 - 09:34) h234 написал(а):
Цитата
не каждый же раз считать остатки по всем таблицам приходов-расходов
Ну да, логично...

Спустя 11 минут, 52 секунды (2.09.2012 - 09:46) Leo.nardo написал(а):
Спасибо Michael, дай Бог тебе всего хорошего... Я с таблицей остатков протупил - ты абсолютно прав, с ней все очевидно... Я вот просто боялся, что постоенные счеты-расчеты будут сильно нагружать сервак.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.