私は MySQL にまったく慣れていないため、次のセットアップの適切なレイアウトを作成する方法がよくわかりません。
1 つのリディム (リズム) には、いくつかの曲 (曲) を入れることができます。曲には次の情報/フィールドがあります: 名前、アーティスト、レーベル、プロデューサー、最終変更のタイムスタンプ、年、歌詞、フラグ、タグ、ソース。
リディムには、名前、最終更新日、ジャンル、YouTube、および画像のフィールドがあります。
理解を深めるための図を次に示します: http://img194.imageshack.us/img194/6553/93112345.png
すべての情報を 1 つのテーブルに入れると、重複したデータ (ジャンルや画像など) ができてしまいます。これは、アーティスト/曲を含むすべての行に、その歌が歌われたリディム (リズム) があるためです。
現在、私のテーブルは次のようになっています。
RIDDIMS テーブル:
+---------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+-------------------+-------+
| riddim | varchar(255) | NO | MUL | NULL | |
| genre | varchar(9) | NO | | NULL | |
| youtube | varchar(11) | NO | | NULL | |
| image | varchar(11) | NO | | NULL | |
| last_modified | timestamp | NO | | CURRENT_TIMESTAMP | |
+---------------+--------------+------+-----+-------------------+-------+
TUNES テーブル:
+---------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+-------------------+-------+
| riddim | varchar(255) | NO | MUL | NULL | |
| artist | varchar(255) | NO | MUL | NULL | |
| tune | varchar(255) | NO | | NULL | |
| label | varchar(255) | NO | | NULL | |
| producer | varchar(255) | NO | | NULL | |
| year | varchar(4) | NO | | NULL | |
| lyrics | text | NO | | NULL | |
| flag | varchar(12) | NO | | NULL | |
| tag | varchar(255) | NO | | NULL | |
| source | varchar(255) | NO | | NULL | |
| last_modified | timestamp | YES | | CURRENT_TIMESTAMP | |
+---------------+--------------+------+-----+-------------------+-------+
しかし、それは良いレイアウトではないと確信しています。テーブル/データベース構造がどのように見えるべきかについて提案はありますか?