2015-01-04 28 views
-2

想象一下,它將詞彙翻譯爲另一種語言。我只處理有限的幾個字(〜2000)。決定如何在django中對這些數據建模

LANGUAGE1和LANGUAGE2(其將具有不同〜2000個字),每個可能具有從其可以是或可以不是的名單上的其他語言的多個詞當量〜其他語言的2000個字。

使用許多一對多的關係,最初吸引我的,但我不能完全透過薄霧看什麼看最適合。

我的另一個想法是隻爲每個單詞做json轉儲。喜歡的東西....

{1: {'Lang1': [word1, word2], 'Lang2': [word1, word2]}} 

,但我不知道這是太聰明瞭,管理一切這樣的,它會很麻煩,從管理部分做(因爲我想我會被編輯長線這是一個JSON對象的文本),它沒有多少好處。

也許有另一種方式,我沒有想到的?

鑑於我的情況,你將如何去定義這個?

回答

1
class Language(models.Model): 
    name = models.CharField(max_length=100) 

class Word(models.Model): 
    name = models.CharField(max_length=100) 
    language = models.ForeignKey(Language, related_name='language_words') 
    #... 

class Translation(models.Model): 
    word = models.ForeignKey(Word, related_name='word_translations') 
    translation = models.CharField(max_length=100) 
    from_language = models.ForeignKey(Language, related_name='language_translations') 
    in_language = models.CharField(max_length=100) 


# stage performances 
english_language = Language(name='english') 
english_language.save() 

word = english_language.language_words.create(name='Flower') 
german_translation = word.word_translations.create(translation='Blumen', 
                from_language=english_language, 
                in_language='German') 



word # 'Flower' 
german_translation # 'Blumen' 

可能不是最佳的,我現在在火車上,但這可能是一個很好的開始。

然後如果你註冊這些模型爲管理員,您可以輕鬆管理(添加/刪除)的翻譯..

+0

我想這可能是我所期待的。我會稍微玩一下,讓你知道。感謝你的回答 – deltaskelta 2015-01-04 11:39:53

相關問題