我是实体框架和数据建模的新手。
问题:
我有用户对象和事物对象,一旦用户“投票”了我的混乱生物? 在EF方面,我认为我理解“多对多关联”,在数据库方面,我认为我理解一个“user_thing表”,它将保存用户和事物的主键。我的问题是,一旦用户对该用户现在独有的东西进行投票。 (与未投票的内容或其他用户投票的内容不同)。它是如何持续存在或建模的?我是否为每个只保留投票内容的用户创建一个新表?我是否从我的事物对象创建了一个具有某种继承的新对象,该对象与用户有多对一的关联?我知道答案就是在那里考虑到很多网站都使用投票,评分,喜欢等等......即使只是推动正确的方向也会受到最高的赞赏。谢谢
答案 0 :(得分:1)
您的架构如下所示:
User
UserId (Primary Key)
Name
(etc)
Thing
ThingId (Primary Key)
Name
(etc)
UserThingVote
UserId
ThingId
--Has **composite** primary key on UserId, ThingId
我认为你的困惑在于这句话:
我的问题是,一旦用户对该用户现在唯一的东西进行投票
这不是真的,因为UserThing表有一个复合主键 - 而不是UserId上的PK。现在,您可以在UserThingVote表中拥有许多记录。每个UserId,ThingId组合必须是唯一的。
您可以像插入任何其他表一样插入EF中的UserThing表。您还应该在UserThingVote表和User and Thing表之间设置外键关系。这将使EF中的对象遍历变得更加容易。