2012-02-20 13 views
1

のSQLiteデータベース:私が持っているものはありません関係

私は接続でSQLiteのデータベースを持っています。ここでは、SQLの少しの部分が(目的地とlog_entriesテーブル間の多対多の接続を)コードを作成することです:

DROP TABLE IF EXISTS "destinations"; 
CREATE TABLE "destinations" (
"ID_destination" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "name" VARCHAR NOT  NULL , "time_period" INTEGER NOT NULL , "details" TEXT 
); 

DROP TABLE IF EXISTS "log_entries_destinations"; 
CREATE TABLE "log_entries_destinations" (
"ID_log_entries_destinations" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,  "ID_destination" INTEGER NOT NULL , "ID_log_entry" INTEGER NOT NULL 
,FOREIGN KEY(ID_log_entry) REFERENCES log_entries(ID_log_entry) 
,FOREIGN KEY(ID_destination) REFERENCES destinations(ID_destination) 
); 


DROP TABLE IF EXISTS "log_entries"; 
CREATE TABLE "log_entries" (
"ID_log_entry" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "timestamp" DATETIME NOT NULL 
); 

あなたが見ることができますが、私は外部キーとの関係を定義しています。 Firefoxのアドイン、私は "オン接続SQL" タブで次のキーをsettedているSQLiteのマネージャでのDBの

:*プラグマFOREIGN_KEYS = ON; *

私の問題は何である: Iので複雑なSQLクエリの作成にはあまりよくないので、グラフィックツールでクエリを設計する必要があります。私の決定はSquirereLでした。 SQLite用のJDBCドライバをダウンロードしました。

SquirreLでは、すべてのテーブルをグラフに送信すると、その関係を見ることができません。クエリビルダツールでも。 SQLiteとSquirrelのコンボを経験したことがありますか? sqliteの代替クエリデザイナツールが存在しますか?または、最も簡単な方法は、たとえばAccessでSQLクリエータスクリプトを実行し、そこにクエリを設計することです。

答えて

2

私はクエリビルダツールを使用しないことをお勧めします。あなたが今弾を噛んで最初の1,2回の質問を書こうとすると、長期的にはあなたにとってもっと簡単になるでしょう...あなたはすぐにそれを掴むでしょう。

代替案は、あなたが望むものを正確に行うためのクエリビルダーツールを永遠に得ようとしています。これは本当の頭痛になる可能性があります。

+0

ありがとう、 多分あなたは正しいです、私はあなたが提案した方法で行くと思います。 –

関連する問題