数据库结构 : Relational table with more columns or relational table to a relational table?

标签 database database-design relational-database mariadb

我正在逻辑层面上设计一个数据库,以便稍后将其传递给程序员来交付。我只是粗略地了解它们的工作原理,所以我很难简洁地表达我的问题。这是我的问题:

我有一个名为 MEANINGS 的表。

我有一个名为 WORDS 的表。

我有一个名为 M-to-W 的关系表。

我有一个名为 GRAMMAR 的表。

单词可以有多个含义含义可以有多个单词。但我还想添加语法。我可以在 WORDS 中添加一行,但有时一个词的行为会因含义而异(比如过去时是“他上吊自杀”表示自杀,而“他在墙上挂了一幅画”表示放置)。因此,我在逻辑层面上看到了两个解决方案:

  1. GRAMMAR 可以将 M-to-W 关系表与另一个关系表联系起来,引用整个关系(某些单词的某些含义具有指定的形式)。
  2. GRAMMAR 项目可以在附加行中由 M-to-W 引用。

我只使用 Django/MariaDB 创建了关系数据库(几乎是自动的),所以我不知道这些数据库是否可以有超过两列。我不知道是否可以引用成对的属性。

这些解决方案是否可行,或者是否有更好的做法来处理此类结构性问题?使用复合键更容易吗?请假设将单词和含义放在单独的表格中是必要的。

最佳答案

定义架构之前,确定您拥有哪些数据,以及如何将这些数据放入数据库。

并且决定您想要从数据库中获取什么。

向程序员提供该信息,而不是表格的规范。让他们找出构建架构的最佳方式。

如果他们都没有任何数据库背景,那么就会有一个学习曲线。本论坛的答案只会帮助您走出一个又一个的陷阱。请花时间接受至少一名程序员的培训。

关于数据库结构 : Relational table with more columns or relational table to a relational table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747382/

相关文章:

relational-database - 在 Redis 和/或关系数据库中存储数据

android - 如何与三个表建立关系,SugarOrm

java - 更新: Problem with executing SQL query from Java

java - 如何使用 LIKE SelectionArgs 将 rawQuery() 转换为 query()

database-design - 如何设计一个数据库来存储属性,按同义词选择属性

database - 复合主键中的可为空列有什么问题?

数据库死锁

ruby-on-rails - Rails has_many through for has_many with multiple models

mysql - 动态第二数据库Ruby

sql - Oracle SQL 转储文件将部分提取到 sql/另一个转储文件