如果我有很多租户,每个租户都可以创建很多自定义表单,每个表单的字段 id 都不一样,租户和表单会持续增长,只考虑数据库优化,怎么解决动态字段存储问题;
暂时考虑使用分片,按{tenant_id, form_id}进行分片;
某个动态字段也可能是一个表单 json 应该把动态字段放到一个 json 中,像
{
"tenant_id": 1,
"form_id": 1,
"data": {
"f1": "f1",
"f2": "f2",
"f3": {
"f3-1": "f3-1"
}
}
}
还是动态字段就和 tenant_id 并列在顶级,像
{
"tenant_id": 1,
"form_id": 1,
"f1": "f1",
"f2": "f2",
"f3": {
"f3-1": "f3-1"
}
}
哪种设计方案比较好?