2010-01-31 9 views
0

Est-ce que quelqu'un sait comment puis-je avoir une relation 1 à plusieurs dans la doctrine, mais de cette façon particulière:Avoir une relation 1 à plusieurs sur la doctrine, mais ayant 2 champs étant la clé primaire à l'autre bout

dans mon principale J'ai la table des champs, almnost aucun d'entre eux sont des champs qui pourraient avoir des traductions

Table1: 
table_id <- primary key 
numeric_field1 
numeric_field1 
numeric_field3 

maintenant dans mes Table1_translations J'ai tous les domaines qui pourraient se traduire

Table2: 
table_id <- primary key along with language 
language <- this contains 2 letters representing which language is being stored in this row 
string_field1 
string_field2 
string_field3 

J'ai une idée simple sur la façon de représenter cela avec YAML, mais ma question serait, comment puis-je récupérer ces données?

Table1: 
table_id numeric_field1 numeric_field2 numeric_field3 
1    123   321   415 

Table2 
table_id language string_field1 string_field2 string_field3 
1   en  hello   happy   world 
1   es  hola   feliz   mundo 

Ainsi, pour la ligne avec table_id = 1 J'ai 2 lignes table2 qui correspondent aux chaînes chacune dans une langue différente (en & es) avec cette im essayant de gérer une sorte de localisation, mais sur la base de données puisque ceux-ci pourraient être des textes

merci à l'avance :)

+1

Plus de détails s'il vous plaît, existe-t-il une correspondance entre champ numérique1 et chaîne ligne1? Pourquoi appelez-vous «rangée» 1? Exemple de données peut-être? – Don

+0

Je suis confus aussi. Pouvez-vous dire ce que vous essayez de faire (avoir une table avec des traductions peut-être?), Alors comment essayez-vous de le faire, mais n'entrelacez pas les deux. –

+0

Comment est votre description liée au titre? Vous maintenant comment le représenter, que diriez-vous de nous faire savoir comment vous représentez afin que nous puissions vous aider? –

Répondre

1

Je pense que tout ce que vous devez ajouter une clause spécifiant où la langue que vous voulez en fonction de la localisation. Donc si vous, dans l'application ou la base de données, stockez une variable de langue pour l'utilisateur, alors vous ajoutez simplement une clause where refernceing cette variable ou joindre à la table d'utilisateur pour obtenir la langue locale dont cette personne a besoin (bien que je suggère cette valeur une fois sur la connexion et en le gardant avialble thorugh toute la session).