将歌词存储在MySQL数据库中

时间:2012-02-19 15:50:03

标签: mysql database database-design

我想知道在mysql数据库中存储音乐“Lyrics”的最佳方法是什么。以及用于此的设置是什么。另外,我希望该表存储断行。

我在考虑使用“|”指示一个新行并使用php替换字符串。

我不知道从哪里开始,或者用什么参数(varchar,int(我知道它不会是int)等等。)

目前,我的轨道表格如此布局

table tracks
----
id (int, 10, primary key)
albumid (foreign key to albums table)
name (varchar, 50)
override_artist (overrides album artist if not null)
playtime (int, 5)
lyric (??????)

任何想法都会很棒。

2 个答案:

答案 0 :(得分:5)

你的歌词列应该是TEXT type,如果你的tracks表使用InnoDB引擎,你应该将它存储在一个单独的MyISAM表中,该表是键入tracks表的。安装默认情况下)。这将使您能够在TEXT列上进行全文搜索:

表歌词:

CREATE TABLE lyric (
  lyricid INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
  /* foreign key to tracks.id */
  trackid INT,
  lyric TEXT,
  FOREIGN KEY (trackid) REFERENCES tracks (id)
) ENGINE=MyISAM;

您可以将歌词中的换行符存储为纯旧的换行符。您无需在数据库中替换它们。相反,在输出到HTML时,您可以将它们转换为<br />(在PHP中,用nl2br()完成)。换句话说,如果您在具有换行符的数据库中输入文本,请不要特别对待它们。他们会工作得很好。

答案 1 :(得分:1)

我会选择一个TEXT列并按原样存储换行符 - 这在MySQL表格中完全有效。