我对 MySQL 很陌生,并不真正知道如何为以下设置创建一个好的布局:
一个riddim(节奏)可以容纳几首曲调(歌曲)。一首歌具有以下信息/字段:名称、艺术家、标签、制作人、最后修改的时间戳、年份、歌词、标志、标签、来源。
riddim 具有字段名称、上次修改时间、流派、youtube 和图像。
这是一个更好理解的插图:http: //img194.imageshack.us/img194/6553/93112345.png
如果我将所有信息放在一个表中,我将有冗余数据(例如流派或图像),因为每行带有艺术家/曲调的都会有它所唱的旋律(节奏)。
目前我的表格如下所示:
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 | |
+---------------+--------------+------+-----+-------------------+-------+
调音表:
+---------------+--------------+------+-----+-------------------+-------+
| 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 | |
+---------------+--------------+------+-----+-------------------+-------+
但我敢肯定这不是一个好的布局。你们对表/数据库结构的外观有什么建议吗?