将歌词存储在MySQL数据库中

Thr*_*dne 2 mysql database database-design

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

我在考虑使用"|" 指示一个新行并使用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 (??????)
Run Code Online (Sandbox Code Playgroud)

任何想法都会很棒.

Mic*_*ski 5

您的歌词列应该是TEXT类型,tracks如果您的tracks表使用InnoDB引擎(默认情况下新安装的话),您应该将它存储在一个单独的MyISAM表中.这将使您能够在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;
Run Code Online (Sandbox Code Playgroud)

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