Php 如何设计一个数据库来跟踪我家人拥有的书籍?
我不一定要寻找MySQL或PHP代码。相反,我试图得到一个如何设置一切的概念 我想用MySQL(并用PHP更新)创建一个数据库,存储我家人所有的书。我想为我家里的每个人设置不同的“书架”,这样我们就可以看到谁有某本书 我的第一个想法是为所有的标题、作者等创建一个表格,并为用户id创建一个字段,以显示谁拥有这本书。然而,我可能有一份饥饿游戏的副本,我的祖母可能有一份饥饿游戏的副本。我想在两个书架上都能看到。我的想法唯一可行的办法是如果我们没有复本Php 如何设计一个数据库来跟踪我家人拥有的书籍?,php,mysql,database,Php,Mysql,Database,我不一定要寻找MySQL或PHP代码。相反,我试图得到一个如何设置一切的概念 我想用MySQL(并用PHP更新)创建一个数据库,存储我家人所有的书。我想为我家里的每个人设置不同的“书架”,这样我们就可以看到谁有某本书 我的第一个想法是为所有的标题、作者等创建一个表格,并为用户id创建一个字段,以显示谁拥有这本书。然而,我可能有一份饥饿游戏的副本,我的祖母可能有一份饥饿游戏的副本。我想在两个书架上都能看到。我的想法唯一可行的办法是如果我们没有复本 我的下一个想法是为每个用户使用不同的表,并有一个字
我的下一个想法是为每个用户使用不同的表,并有一个字段,其中包含用户拥有的每本书的图书id。我认为这将在小范围内起作用,但它似乎不是一个有效的设计。我计划一旦我有了一个稳定的网站,就将数据库公开给我们镇上的每个人(数千人)使用,所以我想从正确的设计开始
这应该如何设计 我可以想到一个简单的解决方案: 图书表:所有唯一图书的列表 用户书籍:包含用户id和书籍id。多个用户可以拥有相同的标题 用户:用户列表
这是相当基本的。所有人、书和作者都应该不言自明。将任何其他字段添加到所需的表中。书架和图书作者都是交叉参考表,因此每本书可以有多个所有者,每本书可以有多个作者
**owner:**
owner_id
owner_name
...
**book:**
book_id
book_name
...
**author:**
author_id
author_name
...
**bookshelf:**
owner_id
book_id
**book_authors:**
book_id
author_id
下面是另一个解决方案:
**** BOOK ***
book_id
book_title
book_desc
book_bought
*** USERS ***
user_id,
name,
dateOfBirth
** Copies **
copy_id (PK)
user_id (FK)
book_id (FK)
NoOfCopies
你可能想区分这本书的所有权和现在的占有权,因为人们无疑是在借书。因此,图书表(如果要扩展到DVD等,最好称之为ITEM)和PERSON,以及所有权表BOOK/MEDIA\u OWNER,可能会附带一个ITEM\u LOAN表 您可能还希望允许对项目集进行分组,以便可以分别识别一本书的多卷或一个展览季节的光盘。书籍(和电影等)也会以系列形式出现,所以也要考虑如何表现这一点
顺便说一下,这是一个普遍接受的规则,如果一个版本的作品在印刷之间的变化超过20%,那么它就是一个新的印象,但它并不总是被授予一个新的ISBN。取决于出版商。此外,书籍的层次结构基于Work-
**** BOOK ***
book_id
book_title
book_desc
book_bought
*** USERS ***
user_id,
name,
dateOfBirth
** Copies **
copy_id (PK)
user_id (FK)
book_id (FK)
NoOfCopies