SQLite データベースに 3 つのテーブルがあります。
曲:
_id | name | length | artist_id | album_id
アーティスト:
_id | name
アルバム:
_id | name
複数の値を持つことができるテーブルが必要artist_id
です。Songs
それを達成するための最良の方法は何ですか?
1-文字列フィールドとして作成すると、値は次のようになります。1, 2, 5
各数値はテーブルのIDを表しArtists
ます。
2- テーブル内の各レコードに対してテーブルを作成しますSongs
。各テーブルには複数の値が含まれます (非常に悪い解決策のようです?!)。
3- 次のフィールドを含むテーブルを作成します。
_id | artist_id
whereはテーブルを_id
表し_id
、Songs
主キーではありません。Whileartist_id
はアーティストの ID です。
質問の後半:
3 つのテーブルを正しく作成した場合、次のテーブルを持つクエリを作成するにはどうすればよいですか。
_id | name | length | artist1_id | artist1_name | artist2_id | artist2_name | ...
ここでは、曲のすべてのアーティストを 1 つのテーブルにまとめました (ただし、ほとんどの曲にはアーティストが 1 人しかいませんが、アーティストがいない曲もあります)。