2011-01-12 16 views
0

私は、異なるフィールドを持つポストタイプを持つことにどのように最善の方法で取り組んでいるのだろうかと思いました。ポストタイプのメッセージ(タイトル、本文)は、写真(タイトル、URLのパス、説明)などとは異なるフィールドを持ちます。ポストタイプに基づくデータベース構造

理想的には、1つのテーブルの下に置いておきたいと思っています。ビューに集約する。それはjQueryでフィールドを表示したり隠したりすることができますが、それはデータベースに冗長なフィールドを残します。

これについての最善の方法についてのご意見はありますか?

おかげ

答えて

1

私はポストタイプフィールドで

  1. 一般的なポスト・テーブルをお勧めします。
  2. ポストタイプテーブル
  3. 個々のポストタイプの特定のテーブル。

したがって、すべての投稿タイプに適用されるフィールドは、一般的な投稿テーブルに保存されます。

次に、ポストタイプIDを使用して追加のフィールドを特定し、ポストタイプIDに基づいてそれらのフィールドのデータを取得することができます。

一般的なポストテーブルは次のようになります

| id |タイトル| author_id |テキスト|あなたはタイプのテーブルが

だろう投稿

| id | post_type | < - post_typeは文字列です

日付フィールドが必要な「カレンダー」投稿タイプがあるとします。私たちはそれを写真投稿型と呼んでいます。テーブルは "calendar_post_fields"と呼ばれ、ポストタイプは "calendar"になります。

| id | post_id |日付|

+0

意味があります、ありがとうございます。私はそれを行ってあげるよ。 – Goldy

0

最初のものが最初です。実行時に新しい "タイプ"を追加する能力がありますか?この質問に対する答えは、そうでなければ固いソリューションを無効にする可能性があります。

質問に対する回答が「いいえ」の場合は、gargantuanの解決策に進みます。共通フィールド用の基本テーブルと、特定のフィールド用の別のテーブルがあります。特定の表には、基本表に対する外部キーがあります。この方法により、動的SQLは回避され、重複フィールドは回避され、クエリのパフォーマンスは向上します。

他の解決策もありますが、上記の解決策があなたのニーズを満たしていない限り、私はむしろ言及しません。

関連する問題