Вставка большего количества значений в одну строку - PullRequest
0 голосов
/ 25 февраля 2019

Я создал таблицу для ресторана, где я сохраняю заказ с «кодом» (в основном названием блюда), «таблицей» и ценой в БД, «таблица» является первичным ключом.Но теперь я изо всех сил пытаюсь добавить новые заказы для того же самого «стола».Допустим, клиент решил заказать десерт или напиток, как я могу поместить значения «код» и «цена» в таблицу, не переписывая предыдущие значения?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Я думаю, что вы выбрали плохой первичный ключ.Потому что таблица не может быть первичным ключом в БД.Поскольку вам необходимо использовать таблицу несколько раз для заказов.

У вас есть 2 варианта:

  1. , если вы хотите использовать таблицу в качестве первичного ключа, вы должны создать новую таблицу БД длякаждый стол и там хранят каждый заказ для него.Над ним вы можете хранить таблицу БД с таблицами

  2. Выберите Заказы в качестве первичного ключа.И назначьте таблицу для каждого заказа.

Это мое мнение

0 голосов
/ 25 февраля 2019

Несколько идей для вас:

Вы используете термин table для обозначения таблицы людей, которые заказывают вещи.Поскольку это может сбивать с толку в моем ответе, давайте использовать термин customer для обозначения таблицы, полной клиентов, которые размещают заказы.

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

Одна идея состоит в том, чтобы иметь две таблицы SQL: (a) таблица блюд (закусок, десертов, напитков и т. Д.) И их цены, (b) таблица транзакций.(Каждое заказанное блюдо является отдельной транзакцией, поэтому для каждого клиента будет несколько транзакций)

Каждая транзакция (одна строка) будет включать:

a.транзакция - индекс - последовательный - автоинкремментированный - УНИКАЛЬНЫЙ (первичный ключ)

b.ID транзакции - invoice_number - может быть просто ГГГГММДД_ЧЧММСС

c.table_num - целое число (идентифицирует клиента (клиентов), которые сделали заказы)

d.блюдо - блюдо, которое было заказано

. При печати счета-фактуры выполняется поиск в таблице Tn всех элементов, связанных с ID транзакции # 123.Упрощает добавление новых заказов.

При желании вы также можете иметь таблицу SQL с сессий , которая может ссылаться на все транзакции, связанные с одним обедомсессия.По сути, это будет запись каждого заполненного счета.У вас могут быть такие поля, как:

a.SessionIdx - уникальный индекс, автоинкремент, первичный ключ

b.SessionID - номер счета-фактуры - будет транзакцией_num в таблице транзакций

c.дата / время

d.количество клиентов

e.Способ оплаты

Также обратите внимание, что вы захотите сделать эту реляционную базу данных, что просто означает, что вместо написания названия блюда и цены на блюдо, в их собственных полях в таблица транзакций - вы просто добавляете dish_id (из таблицы SQL блюд).Затем будет опрошен стол с блюдами, чтобы узнать название блюда и цену блюда.Облегчает обновление вещей. Однако вы также можете сохранить исторические цены, чтобы при обновлении цен вы не теряли исторические данные о ценах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...