数据库结构:具有更多列或关系表到关系表的关系表?

问题描述:

我正在设计一个逻辑层上的数据库,稍后传递给程序员来交付。我只是表面上很熟悉他们的工作方式,所以我很努力地说出我的问题。这是我的问题:数据库结构:具有更多列或关系表到关系表的关系表?

我有一个名为MEANINGS的表。

我有一个名为WORDS的表。

我有名为M到W的关系表。

我有一个名为GRAMMAR的表。

可以有多个含义含义可以有多个词语。但我也想添加语法。我可以在单词中添加一行,但有时候一个单词的表现会有所不同,具体取决于意义(比如过去式是“他上吊自杀”,“他在墙上挂了一张照片”)。因此,我看到一个逻辑电平两种解决方案:

  1. 语法可以与M-到-W关系表链接与其他关系表,引用整个关系(某些词的含义某些指定的形式)。
  2. GRAMMAR项目可以通过M-to-W在附加行中引用。

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

这些解决方案中的任何一种都有可能吗?还是有更好的做法来处理这种结构性问题?使用组合键更容易吗?请假设在单独的表格中保留单词和含义是必要的。

+1

宁可调用'M-to-W'关系表而不是关系表。如果您有一阶逻辑模型,则您的所有表都是关系表。把关系看作表的同义词,但是有一些额外的规则,比如没有重复的行/列和行/列的顺序无关紧要。 – reaanb

+0

好的,谢谢,不知道! – MrVocabulary

+1

在关系模型中,关系(表格)表示n元关系(船舶)。您需要阅读关于信息建模,关系模型和数据库设计的一些书。 [这里有一些我可以认可的。](https:// *。com/a/24007275/3404097)关于你是否能够或应该用其他人取代三元关系(船),属于“依赖理论”,涉及“归一化到更高的NFs(正常形式)”。 – philipxy

之前定义模式,决定你有什么数据,以及如何将它放入数据库。

决定你想要的数据库。

给程序员提供的信息,不是表的规格。让他们找出架构模式的最佳方式。

如果它们都没有任何数据库背景,那么就有一条学习曲线。这个论坛的答案只会帮助你解决一个又一个的问题。请花时间让至少一名程序员接受培训。

+1

感谢您的建议。我知道我有什么数据,以及它会如何放在那里。但我还没有任何程序员,我正在准备一个规范。这个问题的解决方案是否确实如此依赖于特定的情况? – MrVocabulary

+2

它可能会更好地拥有一个表的一切,而不是一个3头多对多映射表。没有尝试就说不清。 (我不知道Django是否有限制。) –

+0

Django并不是一个绝对的给定,但是虽然单词和语法可以合并,但意义必须分开。 – MrVocabulary