2012-02-17 21 views
0
私はすべてのウェブサイトのページの情報を格納するために、このページテーブル構造を持っている

Webページの追加コンテンツの標準DBテーブル構造?

page_id 
page_url 
page_title 
page_subtitle 
page_description 
page_introduction 
page_content_1 
page_content_2 
page_content_3 
page_content_4 
... 

あなただけではなく、page_contentの、私はpage_content_1page_content_4を持っていることがわかります。理由は、ページごとに異なる種類のページコンテンツを保存することができるためです。

しかし、これは良い練習であるかどうかは疑問ですか?他の開発者がこのページテーブルをさらに発展させる場合、この構造が冗長であると思いますか?

このような追加のページコンテンツを保存するために別のテーブルを作成する必要があるかもしれないと思いますか?

テーブルpage_additional_content

content_id 
content_additional_1 
content_additional_2 
content_additional_3 
content_additional_4 
page_id 

これは、より良いですか?

また、私が調べるべきより良い標準的なアイデアがありますか?

答えて

2

ビルやフッター)、あなたは次のようにテーブル構造を作成することができます。あなたが望むよう

page_content: 
    content_id (primary key) 
    actual_content (actual content of the page) 
page_structure: 
    page_id (foreign key of the page) 
    content_id (foreign key of the content) 
    order_in_page (order of the content in the page) 

あなたのコンテンツは、追加のテーブルを(ちょうどpage_structureに新しい行を追加し、order_in_pageカウンタをインクリメント)追加することなく、できるだけ多くのセクションに成長することができます。

+0

返事をありがとう、ダンテ。私は少しあなたの提案と混同しています。実際のコンテンツテーブルにあるテーブルだけでこれを行うことができるということですか?また、追加のテーブルは本当に必要ではありませんか?ありがとう。 – laukok

+0

いいえ、まだ2つのテーブルが必要です。 page_contentテーブルには、識別子と、そのセクションのHTMLコンテンツ(page_content_1、page_content_2、...テーブル)が含まれています。 page_structureは、実際のページを定義し、ページ上にどのページセクションがどの順序で表示されるかを追跡するテーブルです。 – MikeTheReader

+0

page_contentテーブルの中にcontent_additional_#データを置くこともできます。 – MikeTheReader

0

同じ名前の列に数値の接尾辞が付いている場合は、通常は「新しい表+外部キー」と考えるべきです。

あなたは、おそらくのような構造化コンテンツテーブルの線に沿って何かを持つほうが良いでしょう:あなたはページ全体にコンテンツを再利用できるようにしたい場合は、このようなヘッダーとして(、クエンティンの答えに

document_id | page | content 
1   | 1  | foo, bar, baz 
+0

ありがとう、Quentin。 – laukok

関連する問題