-ifndef(__TABLE_HRL__). -define(__TABLE_HRL__, true). %% ------------------------------------------------------------------- %% 表配置 %% ------------------------------------------------------------------- -record(table, { tab_name, %% 数据库表对应的表名,也是代码里对应的record名 field_list = [], %% 字段列表,对应mysql数据库表的字段 [#field{}...] prim_key_list = [], %% 表主键,为空默认表的第一个字段作为主键;多个字段表示联合主键 index_list = [], %% 表索引,自动创建数据库表时自动创建索引,该字段只有数据库作用到 uniq_id_field = undefined, %% 唯一id字段,类似于唯一索引,undefined表示该表不需要唯一id字段;该字段主要用于生成select max取表的最大唯一id值 pre_load = false, %% 启动时是否全量加载数据,true/false all_clear = false, %% 表示可否通过ms_cache:delete_all_objects方法删除表的所有数据;慎用,不重要数据可以用该字段 merge_type = 0, %% 合服类型,用于生成合服sql,0-保留主从服数据(默认值) 1-保留主服数据 2-保留从服数据 3-删除主从服数据 4-不处理 merge_ignore_prim_key_conflict = false, %% 合服时是否忽略主键冲突,true-忽略冲突,false-不忽略冲突(默认值) worker_count = 0, %% 表的工作进程数量 split_zone_column = undefined, %% 表的分区字段 copy_from_table = undefined, %% 该表从哪一张表复制,两张表结构完全相同 server_types = [game_server] %% 表的服务类型 }). %% ------------------------------------------------------------------- %% 字段配置 %% ------------------------------------------------------------------- -record(field, { name, %% 字段名 type = int, %% 类型,int | binary | list | map | atom | boolean | tuple | any len = 0, %% 数据库表中该字段的长度;Len=0 且 Type=list/map/tuple 时用text存储,Type=binary/any时用blob存储 common = "", %% 字段的说明 sync = true %% 是否同步到数据库表,true | false;当sync=false,表示该字段是临时数据,数据库表也没有该字段 }). -endif.