我有2张桌子:
Mans:_ID name 1 antony 2 fred
和
point_ID date point 1 23 77 24 99 2 25 78 5 0
我不懂sql语法,请帮帮我.
通过什么iamkrillin illin虾-skrillin恶棍:CREATE table (points) points_ID INTFOREIGN KEY(man_ID) REFERENCES mans(PrimaryKeyFIEld)ON DELETE CASCASDE ON UPDATE CASCASDE
这是一个现实世界的例子.假设您有一些人向您推荐业务:您的员工,您的朋友,您做广告的当地企业等.来自的客户称为“referal”业务.每个人只算作一个参考,但参考者可以参考许多参考(例如,一个员工可能会引用20个新客户;该员工是您的推荐人,而该员工已经进行了20次参考).所以,你有1个引用者和20个referals(一对多):
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对1或1对多的关系;因此,你应该把它变成1对多的表.我对CASCADE的东西不是很精通,但我会试着弄清楚它是如何适合的.
乍一看,它显示ON UPDATE CASCADE ON DELETE CASCADE不属于我的答案,因为删除最后一个referal不应删除referer.
看a different example:
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命令.
我在sqlite3中为ON UPDATE CASCADE和ON UPDATE DELETE运行了一个测试用例,它似乎没有效果.也许他们不能使用sqlite3的默认数据库引擎,但功能在官方sqlite网站上列出:a very descriptive,easy-to-follow example of ON UPDATE CASCADE by sqlite.org.阅读并看看你的想法.
这是我用于测试用例的模式:
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,description text,foreign key(ID,name,description) references hard_candy ON DELETE CASCADE ON UPDATE CASCADE);INSERT INTO hard_candy VALUES(2,'A candy that explodes in your mouth.');COMMIT;
在表的ID-2描述字段中进行各种更新.
总结以上是内存溢出为你收集整理的如何在SQLITE3中创建一对多?全部内容,希望文章能够帮你解决如何在SQLITE3中创建一对多?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)