#database-design
Вопрос:
Я создаю приложение для управления запасами для бизнеса электронной коммерции на основе наложенного платежа, которое имеет около 1000 продаж в день.
Когда пользователь (администратор или сотрудник) совершает новую продажу, он выбирает товар со склада, вводит заказанное количество и выбирает статус, если товары доставлены или возвращены, и для этого я добавил a $table->boolean('is_delivered');
в таблицу продаж
Моя таблица продаж выглядит так
$table->id();
$table->foreignId('warehouse_id')->constrained();
$table->foreignId('product_id')->constrained();
$table->foreignId('user_id')->constrained();
$table->integer('quantity');
$table->interger('product_price');
$table->boolean('is_delivered');
$table->timestamps();
Я признаю, что это ужасный дизайн, и я хочу сделать что-то лучшее с возвратами
Я думал создать новые returns
таблицы, но тогда мне придется повторить и добавить warehouse_id
, product_id
, user_id
, quantity
и product_price
столбцы
Могу ли я что-нибудь сделать для этого?
Комментарии:
1. конечно, вы можете попробовать. Например, вы можете создать дополнительную таблицу «SaleStatus» и поместить туда все возможные статусы,например «Заказано»,»Отправлено»,»Доставлено»,»Отменено»,»Возвращено». Затем добавьте внешний ключ между таблицей «Продажи»и таблицей «SaleStatus».
2. @Сергей спасибо, но мне нужно только два статуса, доставленных и возвращенных. Не было бы лучше, если бы я просто сохранил столбец статуса в таблице продаж вместо этого?
3. Я сильно подозреваю,что вам нужны эти два статуса только сегодня, завтра ваш клиент придет к вам и скажет, что он не может жить без статуса «Отправлен» (просто пример). На вашем месте я бы создал эту дополнительную таблицу
4. В этом есть смысл. Итак, вы предлагаете мне создать таблицу sale_statuses с упомянутыми четырьмя столбцами и добавить идентификатор sale_status_id в качестве внешнего ключа в таблицу продаж, верно?
5. не «четыре столбца», а «четыре строки».