我有一个交叉引用表,其中包含三个主要列:
问题是,在某些情况下,我还需要两列来帮助定义两个对象之间的关系。
我的问题是,处理这种情况的正确方法是什么?
我应该创建另一个包含五列的表,并且有两个表用于实际相同的目的吗? 或者可以添加两个几乎总是包含null的列。它会不必要地影响响应时间和大小吗?
由于
修改 - 我被要求提供更多信息,所以这里是: 数据库持有哲学论点。 该特定表保存了哪些语句以什么逻辑连接的信息。 这些是列:
适用于双向逻辑(例如'if-then'); 但是在多语句逻辑的情况下(例如'和'或'或')我还需要两列:
我不确定这些额外信息是否有用或者更令人困惑。我可以随意忽略它并回答纯粹学术基础上的问题。
答案 0 :(得分:0)
可以有两个id和任意数量的列来描述这种关系。如果这些额外的列是可选的或任何其他列,则可以是NULLable
。
对于单个表来说听起来像两个id JOIN
,对吗?在这种情况下,您可能需要UNION
两个选项来检查任一列中的ID。并且有多个索引,一个以一个id开头,一个从另一个开始。
如果您提供了SHOW CREATE TABLE
和SELECT
或两个{{1}},那将会有所帮助。这可能会让我们更好地了解表格的用途。