Mysql xref表 - 添加列或sparate

时间:2016-03-16 12:18:32

标签: mysql database optimization

我有一个交叉引用表,其中包含三个主要列:

  • object id
  • 不同的对象ID
  • 两者之间的关系类型

问题是,在某些情况下,我还需要两列来帮助定义两个对象之间的关系。

我的问题是,处理这种情况的正确方法是什么?

我应该创建另一个包含五列的表,并且有两个表用于实际相同的目的吗? 或者可以添加两个几乎总是包含null的列。它会不必要地影响响应时间和大小吗?

由于

修改 -  我被要求提供更多信息,所以这里是: 数据库持有哲学论点。 该特定表保存了哪些语句以什么逻辑连接的信息。 这些是列:

  • statement_id
  • logic_id
  • 方向

适用于双向逻辑(例如'if-then'); 但是在多语句逻辑的情况下(例如'和'或'或')我还需要两列:

  • 出口
  • 内部逻辑类型

我不确定这些额外信息是否有用或者更令人困惑。我可以随意忽略它并回答纯粹学术基础上的问题。

1 个答案:

答案 0 :(得分:0)

可以有两个id和任意数量的列来描述这种关系。如果这些额外的列是可选的或任何其他列,则可以是NULLable

对于单个表来说听起来像两个id JOIN,对吗?在这种情况下,您可能需要UNION两个选项来检查任一列中的ID。并且有多个索引,一个以一个id开头,一个从另一个开始。

如果您提供了SHOW CREATE TABLESELECT或两个{{1}},那将会有所帮助。这可能会让我们更好地了解表格的用途。