0

Python(3.X)で辞書プログラムを書き直そうとしています。私はJSONを使用していますが、SQLliteを試してみるのは楽しいかもしれないと思いました。私の質問は:

私は持っています:

  1. 単語
  2. 単語を使用した文のリスト
  3. 同義語のリスト
  4. 反意語のリスト

SQLite3を使用してデータを整理する最もクリーンな方法は何ですか?

私が考えたのは、「valとexample」の一意のIDを持つ1つのテーブルを作成し、同義語と反意語がまだ存在しない場合はそれらの新しいエントリを作成することでした。

ValId  Val        Eaxmples
1      'hot'      'the water is hot\n she's hot\n'
2      'warm'     '...'
3      'cold'     '...'
4      'freezing' '...'

しかし、複数のIDを指すテーブルを作成するにはどうすればよいでしょうか。たとえば、同義語および反意語として'hot'を指します。同義語や反意語がどのように作成されるかわからないので、どのように複数のポンターを作成しますか、それらを刺し傷に入れてから解析する必要がありますか?23 , 4

LinksID  ValID SynIDs AntsIds
   1        1     2      3,4
4

1 に答える 1

1

2つの別々のテーブルを作成します。1つは同義語用で、もう1つはFOREIGN KEYS単語を参照する必要がある反意語用です。

CREATE TABLE synonym (
    SynID INTEGER,
    WordID1 INTEGER,
    WordID2 INTEGER,
    FOREIGN KEY (WordID1) REFERENCES word(ValID),
    FOREIGN KEY (WordID2) REFERENCES word(ValID)
);

CREATE TABLE antonym (
    AntID INTEGER,
    WordID1 INTEGER,
    WordID2 INTEGER,
    FOREIGN KEY (WordID1) REFERENCES word(ValID),
    FOREIGN KEY (WordID2) REFERENCES word(ValID) 
);

そうすれば、単語ごとに類義語や反意語の数が不明になることを心配する必要はありません。次に、次の構造を取得します。

あなたの単語表:

ValId  Val        Eaxmples
1      'hot'      'the water is hot\n she's hot\n'
2      'warm'     '...'
3      'cold'     '...'
4      'freezing' '...'

同義語テーブル:

SynID  WordID1  WordID2
1      1        2
2      3        4

そしてあなたのantonymテーブル:

AntID  WordID1  WordID2
1      1        3
2      1        4
3      2        3
4      2        4
于 2012-06-01T19:26:33.317 に答える