Оптимизация базы данных склада

tanyaKAZ

Новичок
Нужен совет, как лучше организовать таблицы в базе данных.

Программа служит для оформления пришедшего на склад товара. Для учета товаров создаются накладные. Список накладных хранится в таблице bill

Таблица bill
billID | name | date | description

Список товаров, которые составляют ассортимент склада, хранится в таблице goods

Таблица goods
goodID | name | code

Для хранения соответствия между товаром и накладной создана таблица goodforbill

Таблица goodforbill
goodforbillID | billID | goodID | count

При создании накладной запись о ней заносится в таблицу bill, после заполнения накладной товарами формируются записи в таблице goodforbill

Вопрос:
1) Когда количество накладных в базе данных станет гигантским, таблица goodforbill станет еще больше. Возможно имеет смысл создать архив накладных. ... за какой период это имеет смысл делать?
2) Подскажите как лучше обновлять информацию о товарах в накладной. В настоящий момент при сохранении накладной я сначала удаляю все записи из таблицы goodforbill, соответствующие данной накладной, которые были созданы ранее, а потом заново заношу в таблицу goodforbill информацию о новом составе накладной
 

Фанат

oncle terrible
Команда форума
оставить все как есть, из goodforbill ничего не удалять, при этом добавить колонку с ценой
про гигантские таблицы начинать думать тогда, когда они появятся
 

tanyaKAZ

Новичок
C
оставить все как есть, из goodforbill ничего не удалять, при этом добавить колонку с ценой
про гигантские таблицы начинать думать тогда, когда они появятся
Спасибо за ответ, но уверена, что это произойдет уже совсем скоро )))возможно, есть другие предложения

Плюс вопрос с обновлением накладной
Конструкции языка sql которая бы выполняет обновление нескольких строк базы данных в рамках одного запроса как я понимаю нет.
Для каждого товара писать запрос update ... и перед этим еще проверять есть ли запись о таком товаре в таблице goodforbill ... приведет к тому что у меня будет куча обращений к большой таблице ...

Если я при обновлении накладной буду сначала удалять записи о товарах для нее, а потом создавать их заново приведет к тому, что через некоторое время у меня будут гигантские значения в поле goodforbillID ...

Тупиковая ситуация... либо я не вижу выход
 

Фанат

oncle terrible
Команда форума
Нету никакой тупиковой ситуации. Она существует только в воображении.
На тысячах сайтов работает подобная система, и никаких проблем не вызывает.
Не надо считать себя первым человеком, который столкнулся со столь "уникальной" задачей.

но если так прям хочется пугать себя несуществующими проблемами и смело бросаться решать воображаемые задачи, то лучше изобретать свой велосипед самостоятельно, и не позориться с суждениями типа "гигантские значения" и "совершенно необходимо переписывать из пустой таблицы в порожнюю".
 
Сверху