mysql - 如何在数据库中实现这个相当复杂的概念/关系?

标签 mysql sql

我正在创建一个 Web 应用程序,但在尝试弄清楚如何布局数据库表时遇到问题。

我不太懂数据库,但问题是:

例如,我希望应用程序有两个接口(interface)。首先,您创建一本新图书。第二个,您在那本书(或另一本书)中编写一个新的条目/页面

我想到了这三个表: 书籍、作者、条目。

书籍

  • book_id
  • author_id
  • 标题

条目

  • ID
  • author_id
  • 文本
  • 日期时间
  • book_id

作者

  • author_id
  • 全名
  • 用户名

当然,表格并不完整。但我不知道如何很好地建立表之间的关系。我希望作者能够创建一本新书(这是通过在该书中创建第一个条目/页面来实现的,因此Entries表有一条新记录,Books>.) 或者,向书中添加条目/页面。

此外,我不确定图书表是否应该有一个 entry_id 列来跟踪/计算该书中的条目/页数。

我知道这听起来可能很模糊。但我不知 Prop 体要谷歌或具体询问什么。如果 SQL 中有一个概念,或者有一本适合 Web 程序员(我擅长 PHP)的好书,专注于构建具有相当复杂的数据库关系的 Web 应用程序,您可以告诉我,我将不胜感激。

谢谢。

最佳答案

我认为这种关系并不复杂:作者可以创建一本书,而一本书可以包含条目。您的架构允许任何人都可以在他们没有创建的书中创建条目 - 如果您不希望这样做,则从“entries”表中删除“author_id”字段。

但是你真正的问题是什么?

关于mysql - 如何在数据库中实现这个相当复杂的概念/关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18933520/

相关文章:

php - 区分 MySQL 和 Sphinx searchd

mysql - MySQL 中 RENAME TABLE 语句后的 DROP TRIGGER 语句导致 "Error Code: 1146. Table ' testschema.TestRenamed' 不存在”

php - mysql php jquery 隐藏显示选择

sql - PL/SQL 在多个列和表中查找特殊字符

sql - 如何从表中恢复旧数据

mysql - MySQL查询缓存何时被刷新?

c# - 错误 :check the manual that corresponds to your MySQL server version for the right syntax to use near

mysql - 如何用mysql测试日期和日期时间

mysql - 根据报告中的页码排列数据

mysql - SQL 连接两列,第一列有变化