Android Room外键有什么用?

时间:2018-10-25 01:25:40

标签: sqlite foreign-keys relational-database android-room ormlite

@ForeignKey室到底是用来做什么的?

我知道它用于链接两个表,因此只要对父表进行某些更新,它也会更新子表。例如,

onDelete = ForeignKey.CASCADE

我想这不过是我给定的定义(第二段),对吧?

我问这个问题的原因是在 OrmLite 中,例如,当您定义foreign = true时,您可以拥有连接数据库并可以用数据填充外部值。您无法使用@ForeignKey个房间来执行此操作。 这是foreign在OrmLite中的作用的详细说明。

我对吗?

1 个答案:

答案 0 :(得分:1)

FK(外键)是关系数据库的概念。 FK表示,表格子行在其他地方唯一显示。等效地,一位FK表示参与一种关系(船舶)/协会的实体唯一地参与了另一个。这些语句是等效的,因为在关系数据库中,表代表每个关系(船)/关联一起参与的实体/值,因此“ 关系模型”和“ Entity- 关系” 模型”。

FK图可用于方便/快捷方式:默认联接条件;防止更新到无效状态;级联更新;获得与另一个关系(船)/关联中的实体关联的唯一值;同时在一个关系(船)/协会中设置值,而在另一个关系/船中设置值。 FK被错误地称为“关系”,不必知道要查询。必须知道他们要求一个与实体相关联的单个值,但是我们始终可以仅询问一组值,以确定它是否可能总是只包含一个元素。

FK,CK(候选键),PK(主键)和超键(唯一的列/字段集)是约束的特殊情况,它们只是在每个数据库状态和(等效)业务情况下始终适用的条件。它们由关系(船)/协会和可能出现的有效业务情况确定。当我们告诉DBMS关于它们的信息时,它可以阻止将其更新为必须无效的状态,因为它违反了它们。

What is the difference between an entity relationship model and a relational model?