首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一般数据和特定数据的数据库结构

一般数据和特定数据的数据库结构
EN

Stack Overflow用户
提问于 2013-01-17 00:13:04
回答 1查看 124关注 0票数 0

我试图概念化一个数据库布局,我有一个“理论”问题。我有一个系统,例如:

  • 用户
  • 书籍

这些书并不是独一无二的,例如爱丽丝、鲍勃和卡尔都可以有一本“白鲸”。而且,每个用户都可以有许多书籍。这是一个简单的多到多的关系,我非常理解。然而,我会在哪里存储有关爱丽丝的“白鲸”的特定副本的信息呢?

我最终希望能够做到以下几点:-找到所有拥有“白鲸”副本的用户--更改有关某本书“实例”的信息:爱丽丝的“白鲸”被“借出”--更改/添加一本书的信息(即每个人的副本):将出版商信息添加到“白鲸”中。

我看不出怎样才能有效地解决这个问题。我可以有一个图书表,一个用户表,然后n个用户表,每个表都包含关于他/她的收藏的信息。这看起来会很慢,当我需要找到每一个与白鲸的副本。任何建议都会有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-17 13:16:02

假设它是一个库数据库,我将从下面的设计开始。表:

  1. 用户(借书者)
  2. 书籍(关于这本书、书名、作者等的基本信息)。这一级别的信息是合乎逻辑的)
  3. 图书副本(这一本储存印刷的书籍信息)
  4. 用户图书贷款(谁借过哪本书)

这个表格结构允许,

  1. 一本书可以有很多本,每一本都可以识别。
  2. 一个用户可以拥有多本书。

为了更好地理解,这里有一些伪SQL代码。

“查找所有拥有”白鲸“副本的用户”

代码语言:javascript
复制
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

我认为上面的查询解释了表结构,您可以添加属性,如日期发布到图书副本,或关于作者的信息在书籍上,一些日期字段的用户图书贷款,以跟踪期间,使用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14373482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档