プロジェクトで作業中です。そのほとんどは学習目的のために、私は実際には複雑なプロジェクトを試して、基本を掴んだ後に言語を学ぶ最良の方法だと思っています。データベース設計は強力なポイントではありませんが、私はそれを読んで始めましたが、初期の段階ではまだ学習しています。ダイナミックフィールドを含むデータベース構造
私のアルファスキーマです。実際には、私が考えることができるすべてを書き留めて、何か問題が発生したかどうかを確認しようとしています。 http://diagrams.seaquail.net/Diagram.aspx?ID=10094#
私の懸念のいくつかを、私は上のフィードバックをしたいと思います:コアの
お知らせは、例えば地域などの属性、エリアはキッチン、ベッドルーム、庭、バスルーム、リビングルームです簡略化のために言うことができます。ホームページである可能性のある他の顧客については、about_us、スプラッシュ画面に連絡してください。それは2つの領域になる可能性があり、100になる可能性があり、制限する必要はありません。
私はデフォルトのために別々のテーブルを作成し、それぞれはバグにリンクしています。後で私はカスタムフィールドの問題に遭遇しました。もし誰かが、どのテーマにバグを当てはめるのかをマークしたいのであれば、おそらく100もの他のものがあります。そのため、コアセットの属性とカスタムフィールド人々に柔軟性を与える。
しかし、私がカスタムフィールドを取得したときに問題があることが分かったので、代わりに2つのテーブルを使用するように、カスタムフィールドごとにテーブルを作成することはできません。カスタムフィールドとcustom_field_values。アイデアは、デフォルトを含むすべてのフィールドは、このテーブルに格納されるだろうし、各ただ、これはこのなどダイナミックなフィールドを処理するための効率的な方法のように見えるんこの
custom_fields table
id project_id name
01 1 area(default)
12 2 rooms(custom)
13 4 website(custom)
custom_field_values table
id area project_id sort_number
667 area1 1 1
668 area2 1 2
669 area3 1 3
670 area4 1 4
671 bedroom 2 1
672 bathroom 2 2
673 garden 2 3
674 livingroom 2 4
675 homepage 4 1
676 about_us 4 2
677 contact 4 3
678 splash page 4 4
のようなものを持っていることになる値のテーブルにリンクされます他の選択肢はありますか?
デフォルトはハードコードされているので、それらを使用するか、自分で置き換えることができます。あるいは、自分のプロジェクトにリンクされるデフォルトの名前を編集できる別のテーブルを作成することができます。フィードバックは歓迎されています。スキームに問題があると非常に明白なことがあれば、自由に批評をお願いします。
うわEAV