crm系统,导入客户自定义字段,以及展示。表该怎么设计呢

crm系统,导入客户以及展示时

A 客户有 手机号(必填), 名称(非必填), 公司名称(必填)

B 客户有 手机号(必填), 名称(必填)

C 客户有 手机号(必填), 名称(必填), 性别(必填)

目前想的一种方法

customer_template 客户模板表

dept_idtitlerequired
1手机号1
1公司名称0

customer 客户表

dept_idtemplate_idtemplate_value
111888888888
12xxxx公司

但是这样 无法合成1列 除非再取个字段标记第1列 第2列数据

或者这样? customer 客户表

dept_iddata
1[{"template_id": 1, "value": "1888888888"}, {"template_id: 2, "value": "12312312"}]

但是这样查询性能并不行, 已知的是现在已经上千万customer客户了

不知道还有没有更好的一种方式

阅读 1.9k
1 个回答

因为不确定查询场景,可能的几种应对方式:

  1. 我理解这里不是三个用户,而是三类用户,那干脆按照应用场景换成三张表如何呢?
  2. 如果从业务上讲是同一类用户,那么他们的字段要求应该类似(最多必填项原有数据空缺的话导入时设置一个默认值)。数据库不去处理字段是否必填,把所有字段都列上,缺少的补默认值,而在前端页面显示时控制显示项目即可。
  3. 你讲到了data使用json字段的方式查询性能不行,那就必然衍生出原来你希望通过什么方式查询,这种方案里可以把要查询的字段提取出来加索引,其它字段一股脑放在一列作为detail数据。当然这种方式对查询扩展性不友好。
  4. 异构数据,用NoSQL数据库,比如MongoDB。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题