У меня есть таблица SQL-сервера RealEstate с столбцами - Id, Property, Property_Value. Эта таблица имеет около 5-10 миллионов строк и может увеличиться еще больше в будущем. Я хочу вставить строку только в том случае, если в этой таблице не существует комбинация Id, Property, Property_Value.
Таблица примеров -
1,Rooms,5
1,Bath,2
1,Address,New York
2,Rooms,2
2,Bath,1
2,Address,Miami
Вставка 2,Address,Miami
НЕ ДОЛЖНА. Но, 2,Price,2billion
в порядке. Мне любопытно узнать, что является "лучшим" способом сделать это и почему. Почему часть важна для меня. Два способа проверки:
- На уровне приложения - приложение должно проверить, существует ли строка до того, как она вставляет строку.
- На уровне базы данных - установите уникальные ограничения для всех 3 столбцов и дайте базе данных сделайте проверку вместо человека/приложения.
Есть ли какой-нибудь сценарий, в котором один лучше другого?
Спасибо.
PS: Я знаю, что есть аналогичный вопрос, но он не отвечает на мою проблему - Уникальное ограничение против предварительной проверки Кроме того, я думаю, что UNIQUE применим ко всем базам данных, поэтому я не думаю, что я должен удалить теги mysql и oracle.