0

たとえば、最初の列に何かのタイトルまたは名前を格納し、次の列に人またはオブジェクトを関連付けることができるテーブルを作成したいと思います。問題は、同じ役職または名前に関連付けられた複数の人物が存在する可能性があることです。その最初の列が私の主キーである場合、各行に重複することはできません。

Name1 | Jim
      | John
      | Jill

Name2 | Mike
      | Mary

Name3 | Jeff

これは中間テーブルで行う必要がありますか?もしそうなら、実際にそれらを(sqliteで)コーディングする方法がわかりません。メインテーブルの適切な属性を参照する外部キーでそれらを作成するだけですか? どんな助けでも大歓迎です。

4

2 に答える 2

1

はい、SQLite (または任意のリレーショナル データベース) では、個別のテーブルを作成してこれをモデル化します。1 つの列に 2 つの情報を格納することは、リレーショナル モデルでは重大な犯罪です。

詳細が含まれていないため、質問に対してより正確な回答を提供することは困難ですが、関心のある「もの」を格納するために 1 つのテーブル、人に関する情報を格納するために 1 つのテーブル (1 行) が必要になる可能性が最も高いでしょう。人ごと)、および人を「もの」に関連付ける 3 番目の「リンク」テーブル。

この 3 番目のテーブルには、"things" テーブルの主キーを構成する列と、people テーブルの主キーを構成する列のみが含まれています。このテーブルの主キーは、すべての列 (「物」と人がソース テーブルの 1 つの列でそれぞれ識別される場合、おそらく 2 つの列) で構成され、2 つの外部キーを含みます。人々に。

人をモノに関連付けるために 1 つの行が追加されますが、さらに行を追加して、より多くの人を指定されたモノに関連付けたり、より多くの物を各人に関連付けたりすることができます。

于 2012-05-25T02:29:05.937 に答える