Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 用于从列表中选择主元素的数据库设计_Database Design - Fatal编程技术网

Database design 用于从列表中选择主元素的数据库设计

Database design 用于从列表中选择主元素的数据库设计,database-design,Database Design,用户有一个书籍列表,但只有一本书可以显示在他的个人资料上,因为他应该选择它作为他最喜欢的书。我如何设计我的模式,将一本书设置为“本书” 如果在book实体中有一个字段isfavorite,则所有书籍都可以标记为Favorite。如果我将收藏夹设置为1,我必须检索他最喜欢的书并将其取消标记为收藏夹(3次数据库调用) 如果我有一个引用某本书的偏好实体,我可以将该书设置为最喜欢的书 User -< Preferences >- Book >- User User -< Book

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

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

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

User -< Preferences >- Book >- User
User -< Book
User--Book>-User
用户-
你是如何完成这些事情的?我还缺少其他方法吗?哪一个是最好的?我使用代码优先实体框架,因此我对模型进行了编码。

三个表/模型

Users
Books
UserBooks (join table, user id and book id, and favorite flag)
用户和书籍之间存在一对多的关联

与第三个表中的favorite标志不同,您可以有一个参考用户(以及他们最喜欢的书)的preferences模型,但这取决于您希望在其中放置的其他内容,以及这是否可取或看起来如何