У меня есть веб-приложение, которое используется инженерами для калибровки активов (машин, весов) на сайте, и сертификат может быть сгенерирован на основе этих показаний.До сих пор требовалось, чтобы для данного SITE
было несколько ASSET
, а каждый актив имел свой собственный CALIBRATION
.
Так что мой модал был таким.
С недавним изменением, чтобы включить новый тип сертификата.Где ASSET
может иметь многократную калибровку (две, если быть точным), одну до регулировки и одну после, если необходимо.
Мой вопрос: каков наилучший способ приспособить это изменение?Должен ли я изменить отношение между ASSET
один-к-одному CALIBRATION
на один-ко-многим с кратностью (1..2), что в основном требует изменения партии проверки кода.или следует добавить еще один столбец в таблице ASSET
, который указывает на другую запись в той же таблице.Или есть какой-то другой подход к выбору?
Я использую ASP.MVC, с Entity Framework.
Mapping
public Report_AssetMap()
{
HasKey(one => one.report_asset_id);
// Site_Report one-to-many-rel Report_Asset
HasRequired(one => one.Site_Report).WithMany(one => one.Report_Assets).HasForeignKey(one => one.site_report_id);
// Report_Asset one-to-one-rel Asset_Calcert
HasOptional(one => one.Asset_Calcert).WithRequired(ad => ad.Report_Asset).WillCascadeOnDelete(true);
}
public Asset_CalcertMap()
{
HasKey(one => one.report_asset_id);
// User one-to-many Asset_Calcert (with nullable Calcert_handled_by_id at many End)
HasOptional(o => o.Calcert_Handled_By).WithMany(r => r.Handled_Calcert).HasForeignKey(o => o.calcert_handled_by_id);
}