sql - 两个不同的表还是只有一个带有 bool 列的表?

标签 sql database database-design null

我们有两个表:OriginalDocument 和 ProcessedDocument。在第一个中,我们放了一份原始的、未经处理的文件。在验证和处理(转换为我们的 XML 格式并解析)之后,它被放入 ProcessedDocument 表中。处理过的文档可以是有效的或无效的。 哪个更有意义:有两个不同的表用于有效文档和无效文档,还是只有一个包含“有效”列?一些列(~5-7)与无效文档无关。同时存储无效和有效文档也会使 Document 表充满“NULL”列(如果文档无效,文档编号、接收者等信息可能是未知的)。在做出此决定时,我们还应该考虑和权衡什么?

最佳答案

无论文档是有效还是无效,它仍然是一个文档,因此将它们全部放在同一个表中是很有意义的。

但是,如果您的应用程序对无效文档的处理方式不同,以至于几乎被遗忘(未查询、更新等),则拆分表。将两种类型的文档放在同一个表中只会减慢您的查询速度,而且没有立竿见影的好处。

我有一个文档表,其中有效文档和无效文档放在一起,但这只是因为应用程序向用户重新呈现错误文档并要求他们修复它。

关于sql - 两个不同的表还是只有一个带有 bool 列的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538514/

相关文章:

mysql - 我怎样才能根据N得出一个近似的数字并接近现实?

php - PDO query() 或 fetch() 不工作

mysql - Web 系统使用多少个数据库?

database-design - 如何为具有许多 m 的数据库建模 :n relations on a table

mysql - 数据库:表设计/结构

mysql通过时间戳获取最新记录而无需子查询

php - mysql时间戳和php查询

php - while 循环内的查询仅显示 1 个结果

php - 000webhosting 数据库不允许我向 phpmyadmin 发送值

python - 在 SQLAlchemy 和 MySQL 数据库中使用 blob 作为主键