场景
我们在使用数据库时,经常会遇到菜单选项,比如个人信息表中有:
“性别”:男、女;
“学历”:大专以下、大专、本科、硕士及以上;
“英语等级”:英语四级、英语六级、专业八级;
等等;
这些菜单选项肯定需要在数据库中进行维护,当数据表很多时,菜单选项可能都会达到上百个,该如何设计呢?
下面将讲解设计方法。
(设计方法不唯一,本人总结的也不代表最好的,仅供参考)。
数据表设计
总共包含4个表,分别如下:
1.
![](https://i-blog.csdnimg.cn/blog_migrate/72f995507016aa708f23a949711f81d9.png)
2.
![](https://i-blog.csdnimg.cn/blog_migrate/97ed9abcb35455be43ea5155f9b9812c.png)
3。
![](https://i-blog.csdnimg.cn/blog_migrate/bb6cbc1397779441dd8ebc8f2627a167.png)
4.
![](https://i-blog.csdnimg.cn/blog_migrate/1fd844155f6901ba1e1742b30c2dd94c.png)
具体示例
1.
![](https://i-blog.csdnimg.cn/blog_migrate/81e1b257aecc960a1c8e97f7db1afd98.png)
若是想知道“张三”的性别和学历,需要经过下面的步骤(以查询
性别为例):
步骤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.表名表
记录数据库中所有的表信息,每个表对应一条记录。
![](https://i-blog.csdnimg.cn/blog_migrate/fd44208a837872075fefad69a77fb969.png)
3.域名表
记录每个数据表中的每个域名。1个数据表中有n个域(列),就在该表中对应n个记录。
![](https://i-blog.csdnimg.cn/blog_migrate/842f9cc6940d21b0587411897ec354aa.png)
4. 菜单内容表:
记录菜单内容。
![](https://i-blog.csdnimg.cn/blog_migrate/6f9e535d5d7f2271a86f40177e3276b5.png)