【发布时间】:2009-04-08 03:07:25
【问题描述】:
我有一类具有大量二进制属性的数据——准确地说是 151 (!)——我关心的是如何在结构上对这些数据进行建模。尽管将位域存储为字节的内部效率很高,但我的编程感觉却在创建具有 151 个位域(以及其他属性)的表时感到刺痛。
不会有大量的行——也许是 1000 行,并且一旦投入生产就不会经常改变。
我曾考虑将我的数据分类为不相交的子类并创建单独的表,但以这种方式拆分属性是不切实际的,即使可能也肯定不会有效地映射到数据子类。另一个问题是我想将所有数据放在一起并避免字段和/或行重复。我也考虑过使用一些自定义二进制格式,但这不可行,因为我的数据中的键字段被用作其他表中的外键。
查询将大量使用 WHERE 子句来提取相关数据。我考虑过使用多个 long 或 int 字段,但我认为这是不可行的,因为我不知道 SQL 中没有按位与运算符或函数,并且如上所述,属性的分类是有问题的,更不用说其他主要的软件工程问题(使用此方法)。
我将使用 PostgreSQL。
所以,我的问题是我只是制作一个包含大量字段的表格还是有其他与关系模型兼容的方法?
【问题讨论】: