使用位图字符串存储2个实体之间的映射

时间:2015-01-26 04:46:29

标签: mysql database-design

我有2个表从业者分类。在从业者表格中,我的列名称 class_bitmap 包含位图字符串(字符串仅包含'0''1' 字符),最大长度为2000.此字符串代表所有分类

例如:如果从业者有20和44级,那么第20和第44位的字符将被设置为'1',其他人仍然是 '0'

id pid    … class_bitmap
1  PI7923 …  01101010
2  PI9428 …  00000100
3  PI6646 …  01010101

因为分类的数量现在是2000所以我硬编码字符串 长度为2000,初始所有字符均为默认值“0”。如果为从业者分配了任何分类ID,那么该职位的角色(基于该分类的ID class_id )将设置为'1'

我不知道这个设计是否好,如果将来分类延伸到2000以上那么这个设计还是不错的?有人可以就这个问题给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

这是一个非常糟糕的设计,类似于将逗号分隔值存储为字段。您如何轻松确定谁在20级注册?

您应该在“从业者”之间创建一个链接/联接表。和'类':从业者注册的每个班级的一条记录。