这三个都差不多,可以整合下。
比如 Category -> Posts
社区,wiki, 文章就是第一层的 3 个 category
每个 category 可以设置些属性和 ACL 控制:
posts 可以有自己的 ACL 设置 override category 的设置
这样可以弄全局的热门 posts,可以把社区的帖子直接移动到 Wiki 去。如果 category posts 是多对多,还可以在 wiki 里添加一个 page 后,同时在社区显示为一个贴子
你的意思是给它们三个上头加个分类表?没太明白你的意思。
model 可以整合起来用一个,关联到社区就是个帖子,关联到 wiki 就是新页面
我的经验是不要混合 model,混合的 model 普遍最后要拆开
Page, Topic, Post 三个的共同点太少了,内部的实现也是各不相同的,并且随着时间的推移,Topic 里面能够预计到将会越来越复杂业务逻辑。
再说了,这么做不就等于将这三张表涉及到的功能全部要重构一下了?再回头看,真有必要整合么?答案是否定的。 我是觉得,如果有这个功夫我们还不如完善一些其他未完成的功能