我试图概念化一个数据库布局,我有一个“理论”问题。我有一个系统,例如:
这些书并不是独一无二的,例如爱丽丝、鲍勃和卡尔都可以有一本“白鲸”。而且,每个用户都可以有许多书籍。这是一个简单的多到多的关系,我非常理解。然而,我会在哪里存储有关爱丽丝的“白鲸”的特定副本的信息呢?
我最终希望能够做到以下几点:-找到所有拥有“白鲸”副本的用户--更改有关某本书“实例”的信息:爱丽丝的“白鲸”被“借出”--更改/添加一本书的信息(即每个人的副本):将出版商信息添加到“白鲸”中。
我看不出怎样才能有效地解决这个问题。我可以有一个图书表,一个用户表,然后n个用户表,每个表都包含关于他/她的收藏的信息。这看起来会很慢,当我需要找到每一个与白鲸的副本。任何建议都会有帮助。
发布于 2013-01-17 13:16:02
假设它是一个库数据库,我将从下面的设计开始。表:
这个表格结构允许,
为了更好地理解,这里有一些伪SQL代码。
“查找所有拥有”白鲸“副本的用户”
SELECT users.user_name
FROM users u, "user book loans" ubl, "book copies" bk, books b
WHERE 1 = 1
AND b.book_name = "Moby Dick"--find book
AND b.book_id = bk.book_id--find copies of that book
AND bk.book_copy_id = ubl.book_copy_id--find loan info for the book copy
AND ubl.user_id = u.user_id--find user who borrowed the copy我认为上面的查询解释了表结构,您可以添加属性,如日期发布到图书副本,或关于作者的信息在书籍上,一些日期字段的用户图书贷款,以跟踪期间,使用
https://stackoverflow.com/questions/14373482
复制相似问题