0

我正在设计一个数据库来保存办公设备的库存,但在许多情况下,一个房间将包含多个相同项目,例如一个有 3 个相同电视屏幕的会议室。存储序列号等并不重要;只有数量很重要。

我想避免一遍又一遍地重新输入相同的信息(电视、等离子、1920x1080、50" 等),所以我想简单地拥有一个电视表,其中包含每个模型,然后将这些条目链接到 Rooms 表中的特定条目,对于该项目的每个实例一次。我最终得到这样的结果:

public class Television
{
    public int ID { get; set; }

    // ...

    // keep track of rooms containing this model
    public virtual ICollection<Room> Rooms { get; set; }
}

public class Room
{
    public int ID { get; set; }

    // ...

    public virtual ICollection<Television> Televisions { get; set; }
}

问题是,使用此设置,您实际上只能将 TV 表的每一行链接到 Rooms 表的一行一次,而我想将其链接一次,例如 3 次。实现这一目标的最佳方法是什么?

4

1 回答 1

0

如果你想制作具有多对多关系的电视和房间,你需要为它们使用连接表。例如创建连接表调用TelevisionRooms,并在连接表中创建数量属性。它应该可以解决问题。见下文:

 public class Television
    {
        public int TelevisionID { get; set; }
        public int ModelID { get; set; }

        public virtual ICollection<Room> Rooms { get; set; }
    }

    public class Room
    {
        public int RoomID { get; set; }
        //
        public virtual ICollection<Television> Televisions { get; set; }

    }

    public class TelevisionRoom
    {
        public int TelevisionID { get; set; }
        public int RoomID { get; set; }
        public int Quantity { get; set; }
    }

    public class Model
    {
        public int ModelID { get; set; }
        public string ModelName { get; set; }
    }

希望它会有所帮助。

于 2013-11-07T01:35:47.343 回答