数据库UML

UML of DataBase

我将创建网络应用程序,用户可以在其中对书籍进行评分,将书籍的一章添加到他们的购物车,购买然后下载。 Here is my uml of dbbookchapter 具有“一对多”关系,但我从书本 ID b_id 和章节 ID c_id 的外键创建了复合主键来识别章节号图书。 chapteruser是多对多的关系,因为一个chapter可以被很多用户购买,一个user可以购买很多本书。我为 5 星评级系统在图书和用户 table 之间创建了“多对多”关系。 book单独也和user有关系是不是很糟糕table我必须在chapter和评级(user_m2m_book)[=30=之间做出选择]s.

我不确定我的模式是否为第三范式。 user_m2m_chapter table 这样的复合主键会导致一些严重的问题吗?我的架构中还有其他错误吗?

我知道必须根据主题领域做出很多决定。不过我是自己做的,求指教

不是专家,但我认为与其将章节链接到用户,不如在用户和书籍之间建立“多对多”关系。并且,还在书籍和章节之间创建相同的“多对多”关系。这样 User 和 Book 就会建立关系,并且在 JOIN 的帮助下,您也可以通过 Chapter table 中的 BookId 获取章节。 注意:如果您创建一个 table 更好,您可以在其中存储用户和图书信息,其中同一用户将拥有许多图书 ID,反之亦然。