【发布时间】:2011-03-04 17:23:02
【问题描述】:
对于诸如“可接受的付款类型”之类的东西,我有一堆布尔选项,其中可以包括现金、信用卡、支票、贝宝等。我的数据库中没有六个布尔值,我可以只使用一个整数并为每个付款方式分配一个整数,就像这样
PAYMENT_METHODS = (
(1<<0, 'Cash'),
(1<<1, 'Credit Card'),
(1<<2, 'Cheque'),
(1<<3, 'Other'),
)
然后查询python中的特定位以检索标志。我知道这意味着数据库无法按特定标志进行索引,但还有其他缺点吗?
我为什么这样做:我已经有大约 15 个布尔值,分成 3 个不同的逻辑“集”。那已经是很多字段了,使用3个多对多表来保存一堆很少会改变的数据似乎效率低下。使用整数允许我为每个字段添加多达 32 个标志,而无需修改数据库。
【问题讨论】:
标签: django database-design bit-manipulation