网站首页的不同板块是专门建数据表吗?
网站首页的不同板块,有些是图片,有些包含标题加简介,有些只有标题,这些是专门建立数据表来存储的吗,如果是这样的话,好像这些不同的板块不能建在一个数据表。比如,图片板块需要存储标题、图片url、文章id,而其他的可能就不需要存储图片url,这样的话不同板块就需要不同的字段。
可能说得有点乱,就想问下网站首页的不同元素在后台是怎样存储的?
回复内容:
网站首页的不同板块,有些是图片,有些包含标题加简介,有些只有标题,这些是专门建立数据表来存储的吗,如果是这样的话,好像这些不同的板块不能建在一个数据表。比如,图片板块需要存储标题、图片url、文章id,而其他的可能就不需要存储图片url,这样的话不同板块就需要不同的字段。
可能说得有点乱,就想问下网站首页的不同元素在后台是怎样存储的?
一个表就好了。。为什么要多个表。。。
难道你后台还会有多个界面发文章吗?(发版块1的文章的界面,发版块100的文章的界面?)
一个表保存标题、图片、文章、版块位置,不就OK了?
同理,发布文章的时候,选择在哪个版块就行了。
类似这种思路,你懂的。
一个表就够了,用个字段来区分不同板块。
显示页面的时候取出来,按照板块分割成几个数组,塞给模板。
一个表搞定,你说的不需要储存图片URL,字段为空就行啦
原则上都可以。从极端看来:你都可以一条新闻建一个表,一张图片建一个表。然后慢慢往正常的来推:同一类的新闻一个表。然后再推:不同类的新闻也可用一个表,只需要增加一个字段说明各自属于哪个类别。等等。没有准确的答案,需要兼顾方便理解和增删改查效率这些方面。
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;
就这简简单单一张表实现很多扩展