背景:最近想练手后台项目类型的系统,于是参照若依后台管理系统,对于其数据字典有一些疑问。
问题:数据字典在查询的时候是如何关联并且准确的查找到正确的字典数据的?
问题描述:都知道0和1在数据字典中比较常用,比如:性别、禁用启用状态、开关等等,不可避免的可能需要复用,那么如何区分我们需要的是什么字典结果呢?
我查看若依的数据库,发现他的字典数据中有很多0和1,那么他们是如何区分的呢?
假设:有一张用户表,里面的性别使用的0和1,我们在查找字典的时候,这么多0和1我们如何区分哪一个是表示性别的?
然后我又发现若依还有一个字段:字典类型
于是我猜测这个就是区别这么多重复使用字典数据的关键,这是他的字典类型表
于是我猜测,如果我要查询用户性别,那么就拿着用户表记录的0或者1再添加一个查询条件:“sys_user_sex”就能查询到到具体的字典数据。
但是我并不知道这个想法是正确还是错误的,假设若依确实是这样做的。那么他是怎么知道这个添加的条件的?例如:查询性别的时候,他怎么知道需要添加的条件是“sys_user_sex”,查询菜单状态的时候,他又是怎么知道要添加条件“sys_show_hide”之类的,如果将这个条件写死在Java程序中,那确实能够解决这个问题,但是那不就成了硬编码了吗?如果数据字典类型数据发生改变,总不能改动源代码把?那么如何能保证数据字典的灵活性和准确性的?
这个问题困扰了我好久,到现在也没有解决,希望有人能够解惑