如何创建一个到许多人 SQLITE3?

如何创建一个到许多人 SQLITE3?
我有 2 表:


Mans:
_id name
1 antony
2 fred





point
_id date point
1 23 77
24 99

2 25 78
5 0


我不知道语法 SQL, 请帮帮我。
已邀请:

莫问

赞同来自:

yambrylin写道的判断:


CREATE TABLE /points/ points_id INT
FOREIGN KEY/man_id/ REFERENCES mans/PrimaryKeyField/
ON DELETE CASCASDE ON UPDATE CASCASDE


这是一个真实的例子。 假设您有人推荐您的商业:您的员工,您的朋友,当地公司,您正在从事广告等的客户。 'referal' 商业。 每个人被认为只被视为一个推荐,但推荐人可以参考许多推荐 /例如,员工可以参考 20 新客户; 员工是您的推荐,员工确实如此 20 推荐/. 所以你有了 1 riothere和 20 推荐 /one-to-many/:


CREATE TABLE referal/ 
referal_id INTEGER UNIQUE NOT NULL PRIMARY KEY, //A customer can only be 1 referal.
referal_method TEXT, //How were they refered? By phone?
referer_id INTEGER , //Who refered them?
FOREIGN KEY/referer_id/ REFERENCES referer/referer_id//; //Trace more about referer.


现在有可能是有一个人指的是推荐,但我认为这是一个标准的商业惯例 - 只能弥补一个推荐。 因此,您永远不需要列出两个引用。 它永远是态度 1-to-1 或者 1-to-many; 所以你必须把它制成一张桌子 1-to-many. 我不太了解 CASCADE 事情,但我会试图了解它是如何套装的。

乍一看似乎
ON UPDATE CASCADE ON DELETE CASCADE

不包含在我的答案中,因为删除最后推荐不应删除推荐人。

考虑
http://publib.boulder.ibm.com/ ... 2.htm
:


CREATE TABLE all_candy 
/candy_num SERIAL PRIMARY KEY,
candy_maker CHAR/25//;

CREATE TABLE hard_candy
/candy_num INT,
candy_flavor CHAR/20/,
FOREIGN KEY /candy_num/ REFERENCES all_candy
ON DELETE CASCADE/


如果从桌子上拆下纯棒棒糖
hard_candy

, 然后您还从表中删除它
all_candy

, 因为固体棒棒糖是一种糖果,如果糖果的类型发生了变化 /例如,在终止的糖果上/, 然后在任何情况下,您需要执行新命令 INSERT.

我推出了一个测试用例 ON UPDATE CASCADE 和 ON UPDATE DELETE 在 sqlite3, 似乎它没有效果。 也许他们不适用于默认数据库 sqlite3, 但是功能 IS 在官方网站上表示 SQLite:
http://www.sqlite.org/foreignkeys.html#fk_actions
. 阅读并看看你的想法。

这是我用于我的测试用例的方案:


BEGIN TRANSACTION;
CREATE TABLE candy/id integer primary key not null, name text, description text/;
INSERT INTO candy VALUES/1,'Laffy Taffy', 'Delicious, soft candy.'/;
INSERT INTO candy VALUES/2,'Pop Rocks', 'A candy that explodes in your mouth.'/;
COMMIT;

BEGIN TRANSACTION;
CREATE TABLE hard_candy/id integer primary key not null, name text, description text, foreign key/id,name,description/ references hard_candy ON DELETE CASCADE ON UPDATE CASCADE/;
INSERT INTO hard_candy VALUES/2,'Pop Rocks', 'A candy that explodes in your mouth.'/;
COMMIT;


在“描述”字段中启动了各种更新 id-2 任何表。

八刀丁二

赞同来自:

这个语法看起来像这样....


CREATE TABLE /MySecondTable/ Foo INT FOREIGN KEY/Foo/ REFERENCES MyFirstTable/PrimaryKeyField/ ON DELETE CASCASDE ON UPDATE CASCASDE


只有工作 v3.6.1+

文件在这里提供
http://sqlite.org/foreignkeys.html

要回复问题请先登录注册