2009-03-23 8 views
2

最後にデータベースを操作してからしばらく経っています。私の問題は次のとおりです。 これらのデータ構造をデータベーステーブルに変換するのに役立ちます

  1. 私はエントリ(文字列)のリストを持っています。
  2. 各エントリには固有の名前と固有のIDがあります。
  3. エントリは名前を共有できますが、IDは共有できません。
  4. エントリはプロパティ(文字列)を持つこともできます。
  5. エントリは同じプロパティの複数を持つことができます。
  6. 各エントリの各プロパティは、独自の値(文字列)を持つことができます。

これらの要件に最適なテーブルレイアウトは何ですか?

大丈夫ですか?とにかく助けてくれてありがとう。 :P

+0

あなたはこれまでに何を得ていますか? –

+1

まあ、私の問題は、複数の重複するプロパティを持つエントリを処理する方法を考え出すことです。各エントリまたは何のために新しいテーブルを作成しますか? –

答えて

3

エントリテーブル、名前および一意ID(PK)と

プロパティテーブル、PropertyName意味及びID(PK)と

のEntryID(FK)、PropertyID(FK)、一意ID(PKと

EntryProperty表)、値。

+0

ああ!ダー。さて、それはそれを解決します。私は離しています。 :P –

1

まあ、私にとっての問題は、 複数の重複した特性を有するエントリを処理する方法 を考え出すされています。 エントリごとに新しいテーブルを作成するか、 とは何ですか?

id, entry_id, property_id, property_value, timestamp 

がその助けをいか:

さて、あなたが入力して、プロパティテーブルを持っていると仮定していない:-)

は、私の推測では、次の列を持つテーブルを必要とするだろうということですそれはすべて間違っていたのですか?

2
CREATE TABLE entries (
    INTEGER id NOT NULL AUTOINCREMENT, 
    VARCHAR(XX) name, 
    PRIMARY KEY(id) 
) 

CREATE TABLE properties (
    INTEGER id NOT NULL AUTOINCREMENT, 
    VARCHAR(XX) name, 
    VARCHAR(XX) value, 
    INTEGER entryid NOT NULL, 
    FOREIGN KEY(entryid) REFERENCES entries (id) 
) 
関連する問題