2012-02-19 15 views
1

mysqlデータベースに "歌詞"を保存する最良の方法は何か知りたかったのです。そのために使用される設定は何ですか。また、私はテーブルにブレークラインを格納したいと思います。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 (??????) 

素晴らしいアイディアです。

+1

最も簡単な方法は 'text'を使うことです。それはまたあなたのlinebreaksを保存するので、それらを変換する必要はありません。 – kapa

+0

それらを格納するのは簡単な部分です。一度保存すると**どのように**使用したいですか(たとえば、各行の接頭辞を検索する必要があるか、個々の単語を検索する必要がありますか?予想される使用法は、しばしばデータベースモデルを推進します。 –

答えて

4

あなたの歌詞列はTEXT typeであるべきであり、あなたのtracks表は(新規インストールがデフォルトで行う)InnoDBエンジンを使用している場合、あなたはおそらくtracksテーブルにキー別の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; 

あなたは、単に昔ながらの改行などの歌詞で改行を保存することができます。データベースでそれらを置き換える必要はありません。代わりに、HTMLへの出力では<br />に変換します(PHPではnl2br()で終了します)。言い換えれば、改行を含むテキストをデータベースに入力する場合は、それらを特別扱いしないでください。彼らはうまくいくでしょう。

+1

恐ろしいもの、返信いただきありがとうございます。これは私の問題で本当に助けになりました。私はnl2br()について知りませんでした。私は、その関数を適切に使う方法についてPHPページを見なければなりません。再度、感謝します。 – Throdne

1

私はTEXTの列を選択し、改行をそのまま保存します。これはMySQLテーブルで完全に有効です。

関連する問題