场景
我们在使用数据库时,经常会遇到菜单选项,比如个人信息表中有:
“性别”:男、女;
“学历”:大专以下、大专、本科、硕士及以上;
“英语等级”:英语四级、英语六级、专业八级;
等等;
这些菜单选项肯定需要在数据库中进行维护,当数据表很多时,菜单选项可能都会达到上百个,该如何设计呢?
下面将讲解设计方法。
(设计方法不唯一,本人总结的也不代表最好的,仅供参考)。
数据表设计
总共包含4个表,分别如下:
1.

2.

3。

4.

具体示例
1.

若是想知道“张三”的性别和学历,需要经过下面的步骤(以查询性别为例):
步骤1: 在表名表中查询table_name_eng为staff_info对应记录的table_id,本例中为table_id=4;
步骤2: 在域名表中查找table_id=4且column_name_eng为sex对应记录的menu_id,本示例menu_id=16;
步骤3: 在菜单内容表查找menu_id=16的所有记录。
2.表名表
记录数据库中所有的表信息,每个表对应一条记录。

3.域名表
记录每个数据表中的每个域名。1个数据表中有n个域(列),就在该表中对应n个记录。

4. 菜单内容表:
记录菜单内容。
