存储布尔值:捆绑还是单独?

时间:2010-10-21 21:52:12

标签: mysql database-design

我需要存储在数据库中的大约50个离散布尔值。这些都是每隔几秒记录一次,所以我会随着时间的推移存储很多。

这些数据的使用方式是: 1)访问大量时间以查看标志状态历史记录 2)查找标志改变状态的时间

存储后,记录将不会更新。

您是否建议将每个值存储在自己的列中,或者将它们捆绑在一个整数值中并存储在几列中?

我很好奇哪种方法随着数据变大而更好地存储/访问数据?最终我将从多个单元24/7获取数据,因此会有大量数据,所以我想我的问题是:在打包的整数和单个列之间是否存在性能/稳定性权衡。

我正在使用带有VB.NET和PHP接口的MySQL,但问题更多的是通用数据库设计而不是特定于mysql。

谢谢,

2 个答案:

答案 0 :(得分:2)

随着应用程序的发展,这些事实很少会成为布尔值。

今天他们是真/假。

明天他们是真/假/ NA /不知道

第二天他们变成了整数。

最终,它们成为基于其他数据的正确“条件”。

不要将它们“打包”到整数。这是近视的。将它们保留为独立列 - 可能是“字节”或小的东西。

答案 1 :(得分:1)

即使您知道他们将永远是一个布尔,但最好还是将它们放在一个单独的专栏中。这将使查询在未来更容易,更快捷。如果您必须对查询进行一些解包,您会后悔的。我也回应了S.Lott所说的话。为未来做好准备(例如,如果由于某种原因无法获得状态会怎么样?你会说错误还是未知?)