怎样实现客户属性信息的自定义,怎样设计数据库表结构,怎样实现

如果只是用于显示(不会被按此属性过滤)的属性,长字符串字段存xml/json即可。(本问题排查了这种情况,所以答案是:)建一个 附加属性定义表:属性id,属性名,类型(单选、多选、文本),属性选项1,属性选项2,...属性选项50,默认值(可以是文本内容,也可以是选项编号,可多个编号)再建一个 附加属性实例表:用户id,属性id,属性值 (用户在本表可以没任何记录,显示时,他的属性们都按默认值显示;需要修改时,实际才添加本表的记录)
■网友
我有个半成品非常适合你https://github.com/zhblue/crud
■网友
1. 动态字段对应的表(行转列)数据量是 动态字段的个数 * 多少条业务数据 500w*100个字段 就是。。。。 2. 再建一个附属表,这个表留有足够多的字段(field1, field2, field3),查询的时候两张表联合查询。3. nosql 吧
■网友
我的回答不一定是你想要的答案,因为我不知道你的单选、多选、文本具体都需要哪些额外的字段属性。所以我的想法你参考一下吧。
首先,我是在关系数据库sqlite里面进行的。
创建2个表:
person表:保存人的基本信息,以及扩展属性
label表:保存扩展属性的分类
person表可以进行指定人的标签查找;
label表可以进行指定标签的所有人的查找;
具体实现语句如下:
CREATE TABLE IF NOT EXISTS person ( id VARCHAR (16) PRIMARY KEY NOT NULL, name VARCHAR (32), ext_field VARCHAR (32));
INSERT INTO person (id, name, ext_field) VALUES ( \u0026#39;zhangsan\u0026#39;, \u0026#39;张三\u0026#39;, \u0026#39;\u0026#39; );
INSERT INTO person (id, name, ext_field) VALUES (\u0026#39;lisi\u0026#39;, \u0026#39;李四\u0026#39;, \u0026#39;\u0026#39;);
INSERT INTO person (id, name, ext_field) VALUES ( \u0026#39;wagnwu\u0026#39;, \u0026#39;王五\u0026#39;, \u0026#39;\u0026#39; );
CREATE TABLE IF NOT EXISTS label ( id INTEGER PRIMARY KEY NOT NULL, name VARCHAR (32) NOT NULL, person VARCHAR (64));
INSERT INTO label (id, name, person) VALUES ( 0, \u0026#39;程序员\u0026#39;, \u0026#39;\u0026#39; );
INSERT INTO label (id, name, person) VALUES ( 1, \u0026#39;美工\u0026#39;, \u0026#39;\u0026#39; );
显示效果就是:
怎样实现客户属性信息的自定义,怎样设计数据库表结构,怎样实现

怎样实现客户属性信息的自定义,怎样设计数据库表结构,怎样实现

【怎样实现客户属性信息的自定义,怎样设计数据库表结构,怎样实现】 *注:为什么关键字加中括号,这样可以方面在指定表搜索指定人或者标签,缺点就是不支持模糊搜索了。


    推荐阅读