日期:2014-05-18  浏览次数:20405 次

关于特殊数据记录
拿新闻举例:新闻记录可分为“普通新闻”和“推荐新闻”,则建表时有两种方案:
1 只建一个新闻表,在表中设置一个“是否推荐”字段,以区分两种新闻类型;
2 建两个表。一个新闻表,用于保存新闻记录;一个推荐表,用于保存新闻表中“推荐新闻”的对应ID号。
讨教一下,这两种方案,分别有什么优劣?

------解决方案--------------------
1, 方便编程,不利扩展.
设是否推荐字段为 f3, tinyint ,普通为0,推荐为1, 显示时推荐在上,普通在下
以后要再加一类型, 头条新闻 , f3值为 2, 显示时在推荐之上. 此时都可以按 order by f3 desc实现.
以后要再加一类型, xxxx, 但它的排序要在头条和推荐之下, 这时你排序就成问题了, 还要加 case when,可以实现
以后再加几个类型,x1,x2,x3,, 如果排序,那就那具体f3值依赖性太大了.

2,利于扩展,相对于1稍麻烦一点点.


这里不是说哪个好,好个坏, 任何方式都有利有弊, 适应你需要的才是最好的.
------解决方案--------------------
我的想法类似于1,结构如下:

新闻类型(分为普通新闻,推荐新闻),新闻标题,新闻正文......

这种结构也好扩展,如果哪天你想加个"八卦新闻",只需增加一种新闻类型即可.