新手问题 数据表设计问题,请大佬们指点

fatcat · 2023年06月16日 · 最后由 jasl 回复于 2023年07月05日 · 505 次阅读

大佬们,我有个数据表需求:

公司 company 有多个业务 service, 每个业务有多个子业务 sub_service, 子业务 sub_service 会根据公司 company 的不同有不同的设计,有不同的数据项。子业务是在主业务视图下添加创建的。index 显示也是在主业务 service 的 show 页面。

这里该如何设计?问了 chatgpt,说采用动态关联 Polymorphic Associations。但是它举的例子我没搞明白。

烦请大佬们提示一二,感谢。

既然子业务是重点,就以子业务表作为抓手。子业务表可设置两列:父(主)业务 ID 列、公司 ID 列,这样做起来感觉不需要太多的关联,直接在子业务表中作查询既可以了。譬如查询主业务下有多少子业务,Sub-businesses.find_by(主业务 ID) 抛砖引玉,期望看到更多回复。

没完全看懂

这部分应该没悬念:

  • Company has many Services
  • Service has many SubServices

比较 tricky 的地方是个性化部分

如果差异不大,我觉得就把个性化字段都加到 SubService 表去就好,然后用 STI(单表继承)

如果差距很大,就为每种不同类型的 SubService 的个性化部分单独定义扩展模型,比如 SubServiceForCompanyA 然后在 SubService 和个性化扩展模型之间用多态关联

需要 登录 后方可回复, 如果你还没有账号请 注册新账号