用户有一个书籍列表,但他的个人资料中只能显示一本书,因为他应该选择它作为他最喜欢的书。如何设计我的架构以将书籍设为“书”?
如果我在图书实体中有一个字段IsFavourite
,那么所有图书都可以标记为收藏。如果我在1上设置收藏夹,我必须检索他最喜欢的书并将其标记为收藏(3个数据库调用)。
如果我有一个引用书籍的偏好实体,我可以将该书设置为最喜欢的;
User -< Preferences >- Book >- User
User -< Book
你如何完成这些事情?我还缺少另一种方法吗?哪个最好?我正在使用代码优先的实体框架,所以我对我的模型进行编码。
答案 0 :(得分:0)
三个表/模型
Users
Books
UserBooks (join table, user id and book id, and favorite flag)
用户和书籍之间存在一对多关联。
而不是第三个表中的收藏标志,你可以有一个参考用户(和他们最喜欢的书)的偏好模型,但它取决于你想在那里放置的其他东西,以确定这是否可行或如何看。