Πολύ ενδιαφέρον ερώτημα! Δεν το έχω σκεφτεί ποτέ, αλλά αυτή η λύση μου έρχεται στο μυαλό πρώτη :
Ένας πίνακας με τρεις στήλες (προτεινόμενο όνομα word):
id - κωδικός λέξης (integer - auto increment)
language - κωδικός γλώσσας (tinyint) π.χ. ελληνικά=0, ισπανικά=1, αγγλικά=2
word - λέξη (nvarchar)
Δεύτερος πίνακας με σχέσεις μεταξύ λέξεων με τρεις στήλες (προτεινόμενο όνομα wordRelation):
id κωδικός σχέσης (integer - auto increment)
wordID κωδικός λέξης Α (integer - foreign key στον κωδικό λέξης)
tranWordID κωδικός λέξης Β (integer - foreign key στον κωδικό λέξης)
Το query για να βρεις τη μετάφραση μιας ελληνικής λέξης στα ισπανικά θα είναι:
select * from word A
inner join wordrelation B on (A.ID=B.tranWordID)
inner join word C on (B.wordID=C.ID)
WHERE C.word='ελληνικήΛέξη'
AND A.language=1
Η λύση αυτή προϋποθέτει ότι η σχέσεις μεταξύ των λέξεων ορίζονται δυο φορές. Δηλαδή ένα=uno και uno=ένα. Οπότε αν ID του ένα είναι 12 και ID του uno είναι 13 τότε ο πίνακας wordrelation θα έχει δυο εγγραφές 12,13 και 13,12. Αν το πεδέψεις λίγο παραπάνω ίσως αυτό μπορεί να αποφευχθεί.
Αν υπάρχουν άλλες ιδέες τις περιμένω με ενδιαφέρον!
Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.