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

fatcat · June 16, 2023 · Last by jasl replied at July 05, 2023 · 493 hits

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

公司 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 和个性化扩展模型之间用多态关联

You need to Sign in before reply, if you don't have an account, please Sign up first.