1

我有的:

我有一个带有连接的 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 插件中的数据库,SQLite 管理器我在“On-connect SQL”选项卡中设置了以下键:*PRAGMA foreign_keys=ON;*

我的问题是什么: 因为我不擅长编写复杂的 SQL 查询,所以我必须在图形工具中设计查询。我的决定是 SQuirreL。我已经下载了 SQLite 的 JDBC 驱动程序。

在 SQuirreL 中,当我将所有表格发送到图表时,我看不到它们的关系。在查询生成器工具上也是如此。有没有人使用 SQLite-Squirrel 组合的经验?是否存在任何用于 sqlite 的替代查询设计器工具?或者最简单的方法是在 Access 中运行 SQL 创建者脚本,然后在那里设计查询?

4

1 回答 1

2

我建议不要使用查询生成器工具;从长远来看,如果你现在咬紧牙关,努力编写你的前一两个查询,这对你来说会容易得多……你很快就会掌握它的窍门。

另一种选择是永远试图让您的查询构建器工具精确地完成您想要它做的事情......这可能是一个真正令人头疼的问题。

于 2012-02-20T15:40:17.093 回答