【问题标题】:Database design for selecting a main element from a list用于从列表中选择主要元素的数据库设计
【发布时间】:2012-03-29 09:50:43
【问题描述】:

用户有一个书籍列表,但他的个人资料中只能显示一本书,因为他应该选择它作为他最喜欢的书。如何设计我的架构以将一本书设置为“本”书?

如果我在书籍实体中有一个字段IsFavourite,那么所有书籍都可以标记为收藏。如果我将收藏设置为 1,我必须检索他最喜欢的书并将其取消标记为收藏(3 次数据库调用)。

如果我有一个引用一本书的偏好实体,我可以将那本书设置为最喜欢的;

User -< Preferences >- Book >- User
User -< Book

你是如何完成这样的事情的?我还缺少另一种方法吗?哪个是最好的?我使用的是代码优先的实体框架,所以我编写了我的模型。

【问题讨论】:

    标签: database-design


    【解决方案1】:

    三个表/模型

    Users
    Books
    UserBooks (join table, user id and book id, and favorite flag)
    

    用户和图书之间存在一对多关联。

    除了第三个表中的最喜欢标志之外,您还可以有一个参考用户(和他们最喜欢的书)的偏好模型,但这取决于您想要放在那里的其他内容是否可取或如何看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多