私は、従業員が実行するタスクのリストを持っているアプリケーションを開発しています。そして、タスクごとに、彼らはいくつかのアイテムを使用しています。例:整備士が車の作業をしていて、バンパーを新しいものに交換する必要があるため、整備士は倉庫に行き、新しいアイテムを受け取ります。その特定のアイテムには単価があります。したがって、男が固定車を手に取るとき、彼はバンパーにその特定の価格を支払います。しかし、数週間後に価格が変更されているとしましょう。そこで、その商品の単価を変更します。しかし、そのタスクの歴史では、それはまだ古い価格でなければなりません。
私はあなたがこれのために歴史を最もよく保つことができる方法が何であるか疑問に思いました。価格を変更する前にその特定のアイテムをコピーしてから、古い価格のアイテムでタスクを更新することを考えていました。その後、新しい価格でアイテムの更新を行います。
または、これを達成する他の方法はありますか?私はFluentNHibernateを使用してデータベースを管理しています
これらが私のクラスだとしましょう(少し単純化されており、例としては十分です)
public class Task
{
public virtual int Id;
public virtual string Description;
public virtual IList<Item> Items;
}
public class Item
{
public virtual int Id;
public virtual string ItemName;
public virtual decimal UnitPrice;
}
どんな助けでも歓迎します:)