페이지 내용을 편집 할 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 개의 행을 편집 할 수 있어야합니다.
그냥 팁 ... 몽고 DB와 같은 비 관계형 데이터베이스를 보면 극단적 인 속도와 유연성을 제공합니다. 콘텐츠가 적합해야합니다. – jribeiro