与关系和FK进行数据库设计的努力

时间:2019-04-08 14:12:10

标签: database database-design

我正在建立一个需要数据库的网站。我希望用户能够

  1. 登录网站(因此需要保留用户详细信息)
  2. 搜索资源
  3. 搜索电子书
  4. 向个人图书馆添加资源/电子书

我创建了四个表 用户,资源,电子书,图书馆

用户表由以下字段组成

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个图书馆,但是,我希望用户能够向自己的个人图书馆中添加任意数量的图书/资源,那么用户与图书馆之间的关系又如何呢?资源/电子书是?

这可能是一个非常简单的解决方案,但是我是数据库新手,所以请不要判断!

谢谢。

1 个答案:

答案 0 :(得分:1)

从这个问题出发,我理解/假设资源/电子书可以存在于许多图书馆中,而一个图书馆可以包含许多资源/电子书(很多对很多)

因此,我们可以如下创建映射表:

ResourceLibraryMap
----------------
resource_id
library_id

EbookLibraryMap
-------------
ebook_id
library_id

通过这种方式,我们在图书馆资源和图书馆电子书之间建立了多对多关系。 因此,用户将分别通过ResourceLibraryMap / EbookLibraryMap获得许多资源/电子书