优化MySQL数百条记录,组合成一百个组

时间:2017-01-23 16:13:48

标签: php mysql

我有一个包含数百条记录的数据库(当然它不是一个庞大的数据库,但我希望保持这种状态)。我想让用户根据需要从记录中创建任意数量的组(将任何记录放入任何这些组中)。我的想法是在每一行使用二进制数,其中位表示记录是否是相应(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()函数更改位,这些函数对最大字符数有限制。 我很感激任何建议。

1 个答案:

答案 0 :(得分:0)

我会推荐一个记录和组矩阵,一个元表。

一张包含您记录的表格(1:香蕉,2:橙色,3:花等) 一个用户创建组的表(100:group1,200:groupfruits,300:groupplants,400:groupwhatever)。

一个包含组和记录之间连接的表:

group_id | record_id
100      | 1
100      | 3
200      | 1
200      | 2
300      | 3
400      | 1
400      | 2
400      | 3