私は複数のアイテムを保存するデータベースを持っていますが、すべてのアイテムが一意になりますが、他のメーカーの選択肢を持つことができます。したがって、アイテムは相互に潜在的なM:M関係を持つことになります。データベース:アイテムには選択肢があり、データベースにリンクする方法は?
たとえば、アイテムAには3つの選択肢があります。私がアイテムBを追加すると、代替アイテムのリンクも逆になるので、アイテムBを検索すると、アイテムAが選択肢として表示されます。アイテムCを追加するときは、アイテムAとアイテムBの両方の代替アイテムとして追加する必要があります.Cは代替アイテムAとBを持っている必要があります。
どのようにして、それ自身の種類?
代替案が追加された場合は、その親ID(代替ID)にリンクされているので、新しいIDがない場合は、新しい項目ごとに一意のIDを持つ代替案の間に表を作成します。代替表で作成することができます。後でこれが代替であることが判明した場合は、2つのうちの1つの代替IDを削除し、その項目を他の代替IDに追加します。
public partial class Item : Entity
{
public Item()
{
Id = GuidComb.GenerateComb();
}
public Guid Id { get; set; }
public string ItemName { get; set; }
public string MakerRef { get; set; }
public string Description { get; set; }
public virtual Maker Maker { get; set; }
public virtual IList<Offer> Offers { get; set; }
//stuck here on the smart way to make the relationship with itself?
}
アドバイスは歓迎します。 ありがとうございます!