Я создаю приложение отслеживания отпуска, в котором я хочу сохранить идентификатор пользователя вместе с датой и датой. Я использую Amazono DynamoDB в качестве базы данных, и пользователь вводит отпуск через пользовательскую команду.
Например: применить-оставить от даты к дате
Я хочу избежать дублирования записей в базе данных. Например, если пользователь уже подал заявку на отпуск с 06-10-2019 по 10-10-2019 и снова подает заявку на отпуск между теми же датами, он должен получить сообщение о том, что он уже существует, и новая запись должна не быть создан для того же.
Однако пользователь может подать заявку на несколько отпусков, а два пользователя могут сделать отпуск между одними и теми же датами.
Я попытался использовать условное выражение следующим образом:
table.put_item(
Item={
'leave_id': leave_id,
'user_id': user_id,
'from_date': from_date,
'to_date': to_date,
},
ConditionExpression='attribute_not_exists(user_id) AND attribute_not_exists(from_date) AND attribute_not_exists(to_date)'
)
, где left_id - ключ раздела. Однако это не работает, и новая строка добавляется каждый раз, даже если это одни и те же даты. Я просмотрел похожие другие вопросы, но не смог понять, как правильно это настроить.
Любые идеи о том, как я должен поступить об этом, или если есть другой дизайн, которому я должен следовать?