Как правильно настроить таблицу SQLite3 для принятия заказов?
Доброго времени суток, хочу подключить БД в моем случае SQLite3 для принятия заказов с чат бота. В первой таблице у меня перечень товаров и его количество. Вторая таблица на фото. Хочу чтобы эта таблица принимала значение. 1) ID юзера 2) дата заказа 3) название товара и его количество. Вопрос пока что в следующем, как правильно настроить столбцы в этой таблице для принятия этих данных? И нужно ли добавлять столбец о количестве заказанного товара или в order можно реализовать и название и количество товара?
Дополнительно:
Общая схема будет выглядеть так:
Пример
Разумеется, что как часть данных будут не нужны (например, в целом таблица "перевозчик"), но общую связь понять можно.
В первой таблице у меня перечень товаров и его количество.
Если я правильно понял - вы имеете в виду количество доступных товаров "на складе". Глобально варианта 2:
- Храните количество в таблице "товары". Просто в реализации, но сильно ограничивает возможности.
- Создайте отдельную таблицу для учета "прихода товаров" и считайте текущее количество по формуле:
кол-во пришедшего товара - кол-во проданного
UPD: На мой взгляд, если вы уж решили вести учет товара, второй вариант, при правильной реализации (не только схемы как таковой, но и логики взаимодействия с такой схемой), лучше, но в целом - не необходим.
- Нужно чтобы столбик order принимал и отображал значения с первой таблицы при появлении заказа. Название и количество. Я так понял для этого нужно связать их с помощью Foregin Key?
- Роман Арафайлов, да, правда к обычно FK "идет" первичному ключу (он же ID).
- Это вот так будет выглядеть получается для колонки order?
Мне также нужно чтобы принимало количество, которое выбрал покупатель, но во внешнем ключе я так понял можно указать только одно значение, я уже указал название продукта. Чтобы отображало количество, мне лучше сделать еще одну колонку для отображения количества или как-то все же можно указать второе значение для колонки order?
- Роман Арафайлов, в целом да, но опять-же, лучше создать отдельный столбец ID (Первичный ключ) и ссылаться на него, т.к. в отличии от названия, он обычно не меняются.
Количество да, в отдельном поле. На схеме в примере это видно. - Александр Нестеров, принял, спасибо
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос




Для настройки таблицы SQLite3 для принятия заказов, вам потребуется создать соответствующую структуру таблицы, которая будет содержать необходимые поля для хранения информации о заказах. Ниже приведен пример создания таблицы для заказов в SQLite3 с использованием языка программирования PHP:
exec($query); // Проверка успешного создания таблицы if ($db->lastErrorMsg() === "not an error") { echo "Таблица для заказов успешно создана."; } else { echo "Ошибка при создании таблицы для заказов: " . $db->lastErrorMsg(); } // Закрытие соединения с базой данных $db->close(); ?>
В данном примере создается таблица с названием "orders", содержащая следующие поля:
- id: уникальный идентификатор заказа (автоинкрементируемое поле)
- customer_name: имя заказчика (строка)
- customer_email: электронная почта заказчика (строка)
- product_name: название продукта (строка)
- quantity: количество продукта в заказе (целое число)
- total_price: общая стоимость заказа (вещественное число)
Вы можете дополнить данную структуру таблицы в соответствии с вашими потребностями, добавив дополнительные поля или изменив существующие. После создания таблицы вы сможете вставлять, обновлять и извлекать данные о заказах с помощью SQL запросов.