2017-08-09 4 views
0

私はキーワードのために文書を掻き集めるためのpythonスクリプトを作成しました。それはサーバー上で実行され、cronjobは検索が1日に複数回実行されることを確認します(異なる時間に異なるキーワードを使用します)。 データベーススキーマ - プログラムに合った方法でテーブルをリンクできません

TABLE: 'SEARCHES:' 
    search_date(string) 
    number_of_results(integer) 
    keywords_used(string)  

    ^-- I created a single string from all keywords 

このすべて

は、Python/SQLiteので実装するのは簡単だった:

は、結果を格納するために、私は次の表を作成しました。しかし、今度は、 個のキーワードキーワードごとの結果の数を追跡したいと思います。私はすでに作成している

は「キーワード」テーブルを作成し、

TABLE: 'KEYWORDS:' 
    word(string) 
    total_hits(integer) 
    last_used(string)  

はしかし、私は私が検索したキーワードをリンクすることを可能にする方法で、両方のデータベースをリンクする方法を考え出すのトラブルを抱えています。おそらく、「検索」テーブルにはキーワードにリンクする外部キーがあります。しかし、1つの検索につき10個のキーワードが存在する可能性がありますが、1つの外部キー列しかありません。

私はManyToMany関係を調べましたが、これは 'search_id'と 'keyword_id'の両方を含む多数の行を作成すると理解しています。しかし、私が必要とするのは検索ごとに1行です。

プログラムが終了したら、GUIフロントエンドを作成し、リスト/テーブルで実行されたすべての検索を一覧表示することができます。使用されたキーワードだけでなく、検索日のような情報も表示します。検索ごとに1行。

個々のキーワードの個別の概要を作成して、その有効性を示したいと考えています。

私はちょうどこれに対応するためのデータベーススキーマを考え出すことができず、正しい方向に自分の鼻を得るためにいくつかの助けを使うことができます。

答えて

1

「検索」の子である「一致」テーブルでの作成をお勧めします。 「検索ID」フィールドを検索テーブルに追加して、外部キーをサポートします。 「一致」テーブルには、検索ID、個々のキーワード、およびおそらくそのキーワードのヒット数が格納されます。

「一致」と「キーワード」を一致させ、検索IDを使用して「一致」から「検索」に移動することができます。

+0

私はあなたの提案を使用し、それは素晴らしく、感謝して動作します! – Jasper

関連する問題