Я хотел бы спросить о дизайне таблицы на основе ее возможности редактирования в виде сетки. Позволь мне объяснить. Например, у меня есть таблица с именем ProductCustomerRel.
Метод 1
CustomerCode varchar PK
ProductCode varchar PK
StoreCode varchar PK
Quantity int
Note text
Таким образом, комбинация CustomerCode, StoreCode и ProductCode должна быть уникальной. Запись отображается в виде сетки. Требуется, чтобы вы могли редактировать код покупателя, продукта и магазина, но при сохранении данных ограничение PK должно сохраняться.
Проблема здесь в том, что для сетки было бы естественным иметь возможность редактировать первичный ключ 3, вы можете выполнить операцию обновления вида сетки, только сначала удалив строку, а затем вставив строку с обновленными данными.
Альтернативой этому является просто обновить таблицу и добавить SeqNo и просто применить уникальное ограничение для 3 столбцов при вставке и обновлении в виде сетки.
Метод 2
SeqNo int PK
CustomerCode varchar
ProductCode varchar
StoreCode varchar
Quantity int
Note text
Мой вопрос: какой из двух методов лучше? или есть другой способ сделать это?