crm系统,导入客户自定义字段,以及展示。表该怎么设计呢
crm系统,导入客户以及展示时
A 客户有 手机号(必填), 名称(非必填), 公司名称(必填)
B 客户有 手机号(必填), 名称(必填)
C 客户有 手机号(必填), 名称(必填), 性别(必填)
目前想的一种方法
customer_template 客户模板表
dept_id | title | required |
---|---|---|
1 | 手机号 | 1 |
1 | 公司名称 | 0 |
customer 客户表
dept_id | template_id | template_value |
---|---|---|
1 | 1 | 1888888888 |
1 | 2 | xxxx公司 |
但是这样 无法合成1列 除非再取个字段标记第1列 第2列数据
或者这样? customer 客户表
dept_id | data |
---|---|
1 | [{"template_id": 1, "value": "1888888888"}, {"template_id: 2, "value": "12312312"}] |
但是这样查询性能并不行, 已知的是现在已经上千万customer客户了
不知道还有没有更好的一种方式
回答:
因为不确定查询场景,可能的几种应对方式:
- 我理解这里不是三个用户,而是三类用户,那干脆按照应用场景换成三张表如何呢?
- 如果从业务上讲是同一类用户,那么他们的字段要求应该类似(最多必填项原有数据空缺的话导入时设置一个默认值)。数据库不去处理字段是否必填,把所有字段都列上,缺少的补默认值,而在前端页面显示时控制显示项目即可。
- 你讲到了data使用json字段的方式查询性能不行,那就必然衍生出原来你希望通过什么方式查询,这种方案里可以把要查询的字段提取出来加索引,其它字段一股脑放在一列作为detail数据。当然这种方式对查询扩展性不友好。
- 异构数据,用NoSQL数据库,比如MongoDB。
以上是 crm系统,导入客户自定义字段,以及展示。表该怎么设计呢 的全部内容, 来源链接: utcz.com/p/944365.html