Моя таблица SQL имеет следующий DDL
CREATE TABLE `new_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`family_id` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
)
Я хочу держать фамилии в этой простой таблице. Для этого у меня есть микросервис, в котором звонящий отправляет через JSON семейные данные:
{
"family_id" : 1,
"names": ["name1", "name2"]
}
Идентификатор генерируется с помощью автоинкремента из MySQL.
Таким образом, вышеприведенный JSON, наконец, вызовет два оператора вставки:
- вставить (family_id, name) значения (1, name1)
- вставить (family_id, name) значения (1, name2)
Проблема возникает, когда приходит новый запрос с идентификатором family_id, который существует в таблице. Это не должно быть разрешено, и я делаю запрос для поиска, существует ли family_id или нет. Если оно существует, возникает исключение. Как я могу избежать этого запроса? Схема таблицы может быть изменена при необходимости. Было бы хорошо, если бы можно было добавить что-то вроде «идентификатора запроса» или руководства, чтобы установить уникальность для каждого запроса?
Все данные должны быть в одной таблице.
Ниже приведен пример таблицы с некоторыми данными

(из комментария) Я не могу создать вторую таблицу. Все должно храниться в одном столе.