Я разрабатываю базу данных для системы интернет-магазина. Вопрос о том, что я столкнулся, прочитав некоторые сообщения на этом веб-сайте, заключается в том, что хотя я могу использовать составные первичные ключи в случае, о котором я расскажу ниже, действительно ли это плохая практика (согласно сообщения, которые я читал в этом отношении в отношении стека, многие говорят, что это плохая практика, поэтому я спрашиваю).
Я хочу хранить платежи для заказов в отдельной таблице. Причина в том, что в заказе может быть много элементов, которые обрабатываются в отдельной таблице в виде отношений от многих до многих. Теперь, если я не использую составные первичные ключи для моей таблицы платежей, я потеряю свой уникальный PaymentID
:
[PaymentId] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[OrderId] INT NOT NULL PRIMARY KEY --Also a Foreign Key--
Теперь, если я просто удалю основной ключ для OrderId
, я потеряю одно-одно отношение здесь, поэтому Many OrderIds can be associated to many PaymentIds
, и я не хочу этого.
Вот почему ранее заданные здесь вопросы заключили (в основном), что составной ключ - плохая идея. Поэтому я хочу прояснить это для себя; если это плохо, тогда какая лучшая практика?