【发布时间】:2017-01-23 16:13:47
【问题描述】:
我有一个包含数百条记录的数据库(当然它不是一个庞大的数据库,但我想保持这种状态)。我想让用户根据需要从记录中创建任意数量的组(将任何记录放入任何这些组中)。我的想法是在每一行使用一个二进制数,其中位将指示记录是否是相应(2 的幂)组的一部分。 假设有 8 个组,因此 8 位:
banana | ... | 00010011 // banana is in group 0,1 and 4
orange | ... | 00010000 // orange is in group 4 only
flower | ... | 11111111 // flower is member of every group
这非常小巧方便,在 WHERE 子句中易于处理 - 但是,这不能永远持续下去,例如更改我正在使用 PHP 的 bindec()/decbin() 函数的位,这些函数对最大字符数有限制。 如有任何建议,我将不胜感激。
【问题讨论】:
-
好吧,假设有 100000 个组,那二元的想法行不通吧
-
正确执行并为每个用户创建一个交叉引用表到他们的组,另一个为这个用户在一个组中的项目创建一个交叉引用表
-
一个正确索引的交叉引用表对于选择会更有效率
-
带有组 ID 和成员的数据透视表和您的成员表是简单直接的方法..
-
谢谢大家。我要检查那些旋转的东西。