我有 2 个表从业者和分类。在 Practitioner 表中,我有一个列名称 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多个那么这个设计还好吗?有人可以就这个问题给我一些建议吗?
最佳答案
这是一个非常糟糕的设计,类似于将逗号分隔值存储为字段。您如何轻松确定谁注册了 20 级?
您应该在“从业者”和“类(class)”之间创建一个链接/联接表:从业者注册的每个类(class)都有一条记录。
关于mysql - 使用位图字符串存储两个实体之间的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144922/