dataui/docs/codes.md
2023-11-20 07:14:53 +08:00

92 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 代码
## 实现方法
代码以一组数据表形式存储在数据库中, 按照配置,代码表可以存在独立的数据库中也可以存储在业务数据库中
多级代码,代码键值以“.“字符分割,可形成多级代码
其中
代码定义表定义每个代码的名称
代码码值表存储各个代码键值和码值
## 数据结构
代码定义表
code_definition
{
code_name,
code_desc
}
代码码值表
code_keyvalue
{
code_name,
code_key,
level,
code_value
}
## API
class CodeKeyValue
def __init__(self, database):
self.database = database
def new_code(self, code_name:str) -> None:
"""
新建一个代码
"""
def add_kv(self, code_name:str, code_key:str, code_value:str)->None:
"""
新增一个代码
code_name:代码名称
code_key:代码键值
code_value:代码键值
"""
def delete_kv(self, code_name:str, code_key:str) -> None:
"""
删除一个代码
code_name:
code_key:
"""
def modify_kv(self, code_name:str, code_key:str, code_value:str) -> None
"""
修改一个代码值
code_name:代码名称
code_key:代码键值
code_value:新代码键值
"""
def get_code_value(self, code_name:str, code_key:str) -> str:
"""
得到代码码值
code_name:代码名称
code_key:代码键值
返回值:字符串如果没找到返回None
"""
def get_code_items(self, code_name:str, code_key_part:str=Nkne) -> dict
"""
得到代码名称的代码字典如果code_key_part不为空则获得级联的下级代码的字典
code_name:代码名称
code_key:代码键值
返回值:字符串如果没找到返回None
"""
def sql_completion(self, sql, codes):
"""
sql代码补全补全每个代码的码值
sql:原始sql代码
codes:需要补全的代码数组每个codes中的code有以下格式
{
code_keyfield, sql中键值字段
code_valuefield, 补充的键值字段
code_name, 代码名称
}
返回值:补全的SQL代码
局限补全的sql没有做有效性分析不能保证能够执行。比如code_keyfield在原始sql的结果字段中不存在代码库和原始sql的目标数据库不是同一个数据库。
"""