Gerry Schmitz
На самом деле нет никакой причины менять дату; у вас просто есть "новая" "дата вступления в силу" и новая запись; ваши запросы просто должны найти правильную запись для данного промежутка времени.
Дата истечения срока действия одной записи-это дата вступления в силу следующей записи (для этого идентификатора).
Ger Hayden
Спасибо за помощь, Джерри. Если завтра придет клиент и будет настаивать на том, чтобы взять мою систему, то именно это я и сделаю, чтобы запустить ее в производство. Однако это есть и, вероятно, всегда будет для меня не более чем тренировочной песочницей. Таким образом, "бизнес-кейс" - это что-то вроде того, что у меня есть новый продукт, который должен поступить в продажу 01/10/2020, но он откладывается до 01/01/2021. В этом сценарии пользователь хочет изменить fromdate в таблице цен, чтобы отразить это, а не заканчивать текущую запись, чтобы отразить, что продукт начнет продажу на новую дату.
Я могу сделать это, отслеживая исходный ключ, но мне любопытно, существует ли специфический подход Entity Framework к изменению составного ключа.
Другая вещь, которую следует учитывать, заключается в том, что, хотя у меня не так много внешних ключей от MySql, они у меня есть сейчас как часть миграции, которую я недавно сделал на Sql Server (добавление entity framework является частью этого - и это первая таблица). Мне тоже нужно будет подумать об этом. Возможно, разрешение ключевых обновлений больше не является хорошей идеей. Но независимо от того, что это упрямая вещь, я все равно хотел бы посмотреть, как эф может это сделать.
Gerry Schmitz
Я "использовал" композитные ключи "давным-давно"; что-то, что я мог бы перенять от Джеймса Мартина ... Э. Ф. Кодда ... или IMS DB или что-то еще; производительность, я думаю. Во всяком случае, в наши дни я нахожу, что они не дают никакого преимущества, когда я серьезно думаю о своем дизайне. У меня есть "идентификатор сущности" (обычно int), и все дочерние элементы ссылаются только на свой родительский идентификатор, а все остальные столбцы-это значения из "таблиц поиска".
Gerry Schmitz
Хороший план. При эффективном отсутствии "удалений" (пользователем) ваша система становится более надежной. Я думаю, что составные ключи-это скорее пред-SQL. Однако они очень желательны в "хранилище данных" (для извлечения информации). Оперативная и информационная эффективность.