我正在構建一個用於編輯頁面內容的CMS。我希望儘可能靈活,因爲每個頁面將包含可變數量的部分。CMS的數據庫結構
目前,我有以下幾點:
Table page:
===========
id
name
Table page_section:
===================
id
page_id
name
display_order
Table page_section_sub:
=======================
id
page_section_id
name
content
我認爲這種結構將很好地工作,直到我意識到有很多重複的數據,它不是拉選擇特定的數據的理想方式。
例如,表page_section_sub
中的name
字段用於存儲表單的字段標籤。下面是一個示例數據:
Table page_section:
===================
id page_id name
-----------------------------------------
1 1 Slideshow Slide 1
2 1 Slideshow Slide 2
3 1 Slideshow Slide 3
4 1 Middle Box
5 1 Bottom Box
Table page_section_sub:
=======================
id page_section_id name content
------------------------------------------------------
1 1 Heading ...
2 1 First Paragraph ...
3 1 Second Paragraph ...
4 2 Heading ...
5 2 First Paragraph ...
6 2 Second Paragraph ...
7 3 Heading ...
8 3 First Paragraph ...
9 3 Second Paragraph ...
10 4 Image URL ...
11 5 Image URL ...
現在在前端我想顯示的3張幻燈片和其從上述表中的相關content
。這證明是非常乏味的。
我知道我可以爲「標題」,「第一段」和「第二段」創建另一個帶有單獨列的表,但正如我所提到的,我需要這個系統是靈活的,並考慮到任意數量的列。
如何改進此數據庫的結構,以便我可以輕鬆地在前端輸出此數據並在後端修改它?
編輯:這是我想在我面前做到底:
<?php while($row = mysql_fetch_array($slideshow)) { ?>
<div class="slideshow">
<h1><?php echo $row['heading']; ?></h1>
<p class="first"><?php echo $row['first']; ?></p>
<p class="second"><?php echo $row['second']; ?></p>
</div>
<?php } ?>
但當然這些實際$行的列不存在於表中。在後端的,但是我需要能夠在一頁上編輯上述11行。
只是一個提示......你可能想看看非關係型數據庫,如mongo db,因爲它提供了極高的速度和靈活性......你的內容應該適合它。 – jribeiro 2012-01-06 12:08:23