2012-02-19 6 views
1

Je voulais savoir quelle est la meilleure façon de stocker de la musique "Paroles" dans une base de données mysql. et quels sont les paramètres utilisés pour cela. En outre, je voudrais que la table stocke les lignes de rupture.Stocker des paroles dans une base de données MySQL

Je pensais à utiliser "|" pour indiquer une nouvelle ligne et en utilisant php pour remplacer la chaîne.

Je ne sais pas où commencer, ou ce qu'il faut utiliser pour les paramètres (varchar, int (je sais que ça ne va pas être int), etc.)

Actuellement, j'ai ma table de pistes aménagé comme ceci

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 (??????) 

Toutes les idées seraient géniales.

+1

Le plus simple est d'utiliser un 'text'. Il va également stocker vos sauts de ligne très bien, donc pas besoin de les convertir. – kapa

+0

Les stocker est la partie facile. Comment voulez-vous les ** utiliser ** une fois qu'ils sont stockés (par exemple, avez-vous besoin de rechercher sur chaque préfixe de ligne, ou peut-être sur des mots individuels, avez-vous besoin de les modifier, etc ...)? L'utilisation anticipée entraîne souvent le modèle de base de données. –

Répondre

4

Votre colonne lyrique devrait être le TEXT type, et vous devriez probablement stocker dans une table MyISAM séparée calée sur la table tracks si votre table tracks utilise le moteur InnoDB (qui font les nouvelles installations par défaut). Cela vous permettra de faire des recherches en texte intégral sur la colonne TEXTE:

lyrics Tableau:

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; 

Vous pouvez simplement stocker les sauts de ligne dans les paroles que les sauts de ligne pures et simples. Vous n'avez pas besoin de les remplacer dans la base de données. Au lieu de cela, dans votre sortie au format HTML, vous devez les convertir en <br /> (en PHP, c'est fait avec nl2br()). En d'autres termes, si vous entrez du texte dans la base de données avec des sauts de ligne, ne les traitez pas du tout. Ils vont bien fonctionner.

+1

Des trucs géniaux, merci pour la réponse. Cela m'a vraiment aidé avec mon problème. Je n'ai jamais su à propos de nl2br(), je vais devoir regarder la page de php sur comment utiliser correctement cette fonction. Merci encore. – Throdne

1

Je choisirais une colonne TEXT et je conserverais les nouvelles lignes telles qu'elles sont - ceci est parfaitement valable dans une table MySQL.

Questions connexes