網站首頁的不同板塊,有些是圖片,有些包含標題加簡介,有些只有標題,這些是專門建立資料表來儲存的嗎,如果是這樣的話,好像這些不同的板塊不能建在一個資料表。比如,圖片板塊需要儲存標題、圖片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;
就這簡簡單單一張表實現很多擴充