Files
rebar_server/game_server/apps/base/include/table.hrl
T
2026-05-19 11:30:21 +08:00

35 lines
2.5 KiB
Erlang

-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.