我正在建立一个需要数据库的网站。我希望用户能够
- 登录网站(因此需要保留用户详细信息)
- 搜索资源
- 搜索电子书
- 将资源/电子书添加到个人图书馆
我创建了四个表 用户、资源、电子书、图书馆
用户表由以下字段组成
User_ID
User_first_name
User_Last_name
Username
User_password (encrypted)
User_Email
资源由以下字段组成
Resource_ID
Resource_Name
Resource_Category
电子书由以下字段组成
Ebook_ID
Ebook_name
Ebook_category
库由以下字段组成
Library_ID
User_ID
我正在与人际关系和 FK 作斗争。我在用户和图书馆之间建立了一种关系,因为 1 个用户将拥有 1 个图书馆,但是,我希望用户能够向他们的个人图书馆添加尽可能多的书籍/资源,那么用户和图书馆之间的关系是什么资源/电子书是什么?
这可能是一个非常简单的解决方案,但我是数据库的新手,所以不要评判!
提前致谢。
最佳答案
从问题中,我理解/假设一个资源/电子书可以在许多图书馆中,一个图书馆可以包含许多资源/电子书(多对多)
因此我们可以创建映射表如下:
ResourceLibraryMap
----------------
resource_id
library_id
EbookLibraryMap
-------------
ebook_id
library_id
通过这种方式,我们在图书馆资源和图书馆电子书之间创建了多对多关系。 因此,用户将分别通过 ResourceLibraryMap/EbookLibraryMap 拥有许多资源/电子书
关于数据库设计-与关系和 FK 作斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55575448/