我们有两个表:OriginalDocument 和 ProcessedDocument。在第一个中,我们放了一份原始的、未经处理的文件。在验证和处理(转换为我们的 XML 格式并解析)之后,它被放入 ProcessedDocument 表中。处理过的文档可以是有效的或无效的。 哪个更有意义:有两个不同的表用于有效文档和无效文档,还是只有一个包含“有效”列?一些列(~5-7)与无效文档无关。同时存储无效和有效文档也会使 Document 表充满“NULL”列(如果文档无效,文档编号、接收者等信息可能是未知的)。在做出此决定时,我们还应该考虑和权衡什么?
最佳答案
无论文档是有效还是无效,它仍然是一个文档,因此将它们全部放在同一个表中是很有意义的。
但是,如果您的应用程序对无效文档的处理方式不同,以至于几乎被遗忘(未查询、更新等),则拆分表。将两种类型的文档放在同一个表中只会减慢您的查询速度,而且没有立竿见影的好处。
我有一个文档表,其中有效文档和无效文档放在一起,但这只是因为应用程序向用户重新呈现错误文档并要求他们修复它。
关于sql - 两个不同的表还是只有一个带有 bool 列的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538514/