2010-11-29 32 views
0

J'ai une table typique, par ex. J'ai également une table qui fait référence à des fonctions de validation pour chacun, par exemple. J'aimerais pouvoir associer chaque colonne de la première table à un ou plusieurs de ces validateurs.Association de données supplémentaires à une colonne MySQL

La seule façon dont je peux penser à faire cela est de placer les identifiants dans les noms de colonne, par exemple. (nom de la colonne: email; 1; 2) et en garder la trace via PHP, mais cela semble très désordonné.

Existe-t-il un bon moyen de le faire avec des bases de données relationnelles? Une implémentation NoSQL serait-elle plus adaptée à ce problème?

Répondre

2

similaires à ce que Dan a dit, un moyen relativement facile à mettre en œuvre une association sql serait de faire ce qui suit:

id(int) function_id(int) col_name(varchar) 
1  1    address 
2  1    second_address 
3  2    address 
4  2    name 

Ensuite, lorsque vous voulez effectuer la vérification de l'échec, utilisez le tableau ci-dessus pour lier le message d'erreur au nom de la colonne (par ex. 'select function_id from above_table où col_name = "adresse"'), puis interrogez la table des échecs. Ces tables pourraient ensuite être combinées en utilisant une vue avec une jointure afin qu'une seule requête suffise.

Espérons que cela aide.

0

mettre cela dans une autre table qui décrit les colonnes pour les tables curieusement cela est très semblable à l'extension du tableau qui répertorie les colonnes de table avec des colonnes supplémentaires

disons que si vous prolongez votre exemple avec dire des chaînes localisées qui signifierait que le fail_message deviendrait un fail_message_id et la table fail_message aurait les colonnes (id, langue, message)