私はページコンテンツを編集するための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
その関連を表示したいです。これは非常に退屈であることが証明されています。
"見出し"、 "最初の段落"、 "2番目の段落"という別の列を持つ別のテーブルを作成することができますが、私はこのシステムを柔軟にし、任意の数の列を考慮に入れる必要があります。
このデータベースの構造を改善して、このデータをフロントエンドに簡単に出力し、バックエンドでも変更できるようにするにはどうすればよいですか?
EDIT:これは私が私のフロントエンドで何をしたいです:
<?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 } ?>
しかし、もちろん、それらの実際の$行の列がテーブルに存在しません。..バックエンドではしかし、私がする必要があります1ページで上記の11行を編集できるようにする。
ちょっとしたヒント... mongo dbのような非リレーショナルデータベースを見てみると、極端なスピードと柔軟性が得られます...あなたのコンテンツはそれに適しているはずです。 – jribeiro