网站首页的不同板块,有些是图片,有些包含标题加简介,有些只有标题,这些是专门建立数据表来存储的吗,如果是这样的话,好像这些不同的板块不能建在一个数据表。比如,图片板块需要存储标题、图片url、文章id,而其他的可能就不需要存储图片url,这样的话不同板块就需要不同的字段。
可能说得有点乱,就想问下网站首页的不同元素在后台是怎样存储的?
网站首页的不同板块,有些是图片,有些包含标题加简介,有些只有标题,这些是专门建立数据表来存储的吗,如果是这样的话,好像这些不同的板块不能建在一个数据表。比如,图片板块需要存储标题、图片url、文章id,而其他的可能就不需要存储图片url,这样的话不同板块就需要不同的字段。
可能说得有点乱,就想问下网站首页的不同元素在后台是怎样存储的?
一个表就好了。。为什么要多个表。。。
难道你后台还会有多个界面发文章吗?(发版块1的文章的界面,发版块100的文章的界面?)
一个表保存标题、图片、文章、版块位置,不就OK了?
同理,发布文章的时候,选择在哪个版块就行了。
类似这种思路,你懂的。
一个表就够了,用个字段来区分不同板块。
显示页面的时候取出来,按照板块分割成几个数组,塞给模板。
一个表搞定,你说的不需要储存图片URL,字段为空就行啦
原则上都可以。从极端看来:你都可以一条新闻建一个表,一张图片建一个表。然后慢慢往正常的来推:同一类的新闻一个表。然后再推:不同类的新闻也可用一个表,只需要增加一个字段说明各自属于哪个类别。等等。没有准确的答案,需要兼顾方便理解和增删改查效率这些方面。
sql存储树形结构,可以实现无限分级分类
<code class="sql">CREATE TABLE `typecho_contents` ( `cid` int(10) unsigned NOT NULL auto_increment, `title` varchar(200) default NULL, `slug` varchar(200) default NULL, `created` int(10) unsigned default '0', `modified` int(10) unsigned default '0', `text` text, `order` int(10) unsigned default '0', `authorId` int(10) unsigned default '0', `template` varchar(32) default NULL, `type` varchar(16) default 'post', `status` varchar(16) default 'publish', `password` varchar(32) default NULL, `commentsNum` int(10) unsigned default '0', `allowComment` char(1) default '0', `allowPing` char(1) default '0', `allowFeed` char(1) default '0', `parent` int(10) unsigned default '0', PRIMARY KEY (`cid`), UNIQUE KEY `slug` (`slug`), KEY `created` (`created`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;</code>
就这简简单单一张表实现很多扩展