Я создаю приложение с PHP, который использует Mysql DB для управления данными.
Таблицы такие:
user purchasing medicine
____ ________ ________
id_user id_user id_medicine
username id_medic item
Что на самом деле обманывает меня … следует вставить значения в покупку (соединительную таблицу) после того, как я обновлю пользователя и таблицу лекарств?
Должен ли я использовать транзакции для этого?
И второй вопрос, являются ли id_user и id_medic в соединительной таблице, индексах или уникальными?
Извините, я забыл MySQL.
заранее спасибо
Вы должны вставить в medicine
Стол первый. Потому что, если вы правильно настраиваете базу данных, purchasing.id_medic
следует обратиться к medicine.id_medicine
Итак, вставляя в purchasing
таблица должна выйти из строя, если ее нет id_medicine
добавлено ранее. (И да, вы должны использовать транзакции, если считаете, что существует возможность отката после вставки нескольких строк).
В purchasing
Таблица, id_user
а также id_medic
оба должны быть индексами наверняка, но будет ли он уникальным, зависит от ваших вариантов использования. Например :
Если вы считаете, что любой пользователь может приобрести только один товар, тогда id_user
должен быть уникальным.
Если вы считаете, что какой-либо предмет не может быть продан более одного раза, id_medic
должен быть уникальным.
Если вы думаете, что любой пользователь может купить любой товар только один раз, то должны быть уникальные id_user
а также id_medic
Других решений пока нет …