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

标签 mysql database-design

我有 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/

相关文章:

mysql - mysql中的数据规范化

c++ - 在主存中存储关系的最佳方式是什么?

database - 将用户配置文件表与登录详细信息表分开是否有意义

mysql - 如何对特定唯一值的实例总数求和

Mysql 总和 = 0 返回 0 行

mysql - 我可以使用 select where in(x,y,z) 吗?

php - 将 SQL 语句转换为 Joomla 格式时遇到问题

php - mysql,如何将四舍五入的数字保存到长文本字段中?

mysql - 数据库关系(MySQL Workbench)

MySQL 5.5.57 数据库设计建议请求数据库中的 'user' 表