可以的
好处:减少冗余节省空间
坏处:更复杂,维护难度相对较高,节省空间极其有限(是否头条,是否轮播显示类似字段使用布尔型,占用空间最多1字节甚至不到
提示:
1、使用关联表时注意外键和级联操作的维护
2、文章的这些属性颗粒已经很小了,想抽象的话可以向上研究,比如以文章为模板,实现具有不同属性的多样化文章,这个时候关联表就必须登场了……
感觉弊大于利啊,如果是你的话,你会选择如何操作,求解?
@cvxcrfa: 如果系统的文章样式单一(所有文章属性都一样)不会使用关联表,如果文章有好几种样式(A类、B类、C类……这些类型文章的属性不一样,这个时候会考虑使用关联表)
@cvxcrfa: 对于初学者, 如果在初七就有这种感觉, 是我的话, 我会跟着感觉走。
@duomio: 哦哦,感谢!
@请叫我头头哥: 好的,谢谢意见!
CMS? 内容管理系统? 作为当下企业信息化建设和电子政务的新宠我觉得是这得研究的。 你说的研究是只是出于个人爱好学习, 还是商业目的? 如果只是冲着学习的目的去的。 那么, 就不要在之初就考虑这些,你会发现越走越美。
就是个人试着想自己做一个,学习一下各种知识,看了一些数据库的设计,发现都没有这样的设计,为什么啊?
这又不是结婚,你还是自己试试。
再说了,软件早期错的成本最低,等你十年后才发现大头告诉你的错了,你到哪儿找他去啊。
我不会告诉他的, 我一直帮他隐藏着~ :)
你这么做没什么问题。我以前看到过一个商业收费的CMS系统,有和你这个一样的设计。
他们有个挑选器表,里面可以定义一切挑选器,也是类似首页头条这些。然后有个挑选器内容表,存放各个挑选器选中的内容。
好处:十分灵活,内容想怎么选就怎么选。
有些CMS可能就是在文章表里放一些字段,比如,是否推荐,是否置顶,点击率..等一些用于推荐到各个地方显示字段。
一旦需求发生变化,或者其他原因要换显示的规则,甚至基于表现有字段达不到你想要的显示效果。这时候可能需要改代码,或者数据库结构。
这时你这样的设计,你只要把想要显示的文字,设置一个属性即可。
坏处:操作相对会繁琐一些。 比如:首页头条这块位置,只显示5条文章。然后你发布了一条新的文章,想要显示到首页头条,你把新文章设置了首页头条的属性,那么你或许要把一个首页头条里的新闻手动撤下来。
内容的置顶, 轮播, 头条等这些属性没必要再建一个专门的表, 你联表随你怎么优化都没有一张表去查效率高。
如楼上所说。 顶多就是加这么几个字段, 为了解决比如像置顶头条过期(置顶多久时间),可以加再个有效时间。 这几个字段的设置规则自己要清楚就行了。