大佬们,我有个数据表需求:
公司 company 有多个业务 service, 每个业务有多个子业务 sub_service, 子业务 sub_service 会根据公司 company 的不同有不同的设计,有不同的数据项。子业务是在主业务视图下添加创建的。index 显示也是在主业务 service 的 show 页面。
这里该如何设计?问了 chatgpt,说采用动态关联 Polymorphic Associations。但是它举的例子我没搞明白。
烦请大佬们提示一二,感谢。
既然子业务是重点,就以子业务表作为抓手。子业务表可设置两列:父(主)业务 ID 列、公司 ID 列,这样做起来感觉不需要太多的关联,直接在子业务表中作查询既可以了。譬如查询主业务下有多少子业务,Sub-businesses.find_by(主业务 ID) 抛砖引玉,期望看到更多回复。
没完全看懂
这部分应该没悬念:
比较 tricky 的地方是个性化部分
如果差异不大,我觉得就把个性化字段都加到 SubService 表去就好,然后用 STI(单表继承)
如果差距很大,就为每种不同类型的 SubService 的个性化部分单独定义扩展模型,比如 SubServiceForCompanyA 然后在 SubService 和个性化扩展模型之间用多态关联