假设我在mysql中有两个表 1.Child(姓名,father_name) 2.Father(姓名,联系)
父表有一个复合键(名称,联系人)。子表中的.Father_name引用父亲的名字。因此,外键引用了主键的一部分。这是mysql允许的。
但请考虑以下情况:
表父有以下元组:
(kishan,9906011111)
(kishan,9990601234)
现在假设我在子项中插入一行
(xyz,kishan)
我怎么知道父亲表中的哪个kishan是与xyz相关的孩子?
如果mysql不允许外键引用主键的一部分,则可以避免这种情况。
请回答mysql允许的这种方案的好处?
答案 0 :(得分:0)
这是MySQL的特色。在我看来,外键只应该是唯一键或主键。不应该使用外键关系映射到“设置”值。
显然,MySQL的设计者不同意(包括我和其他数据库实现者)。它们允许与索引的任何列的外键关系 - 在MySQL用语中,被定义为“键”。如果您有复合主键,那么初始列就是这样一个键。
为了防止出现问题并使您的表格明确且易于使用,我建议:
protected Void doInBackground(Void...params) {
//Settimg max priority
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
for (int i = 0; i < scheduleList.size(); i++) {
ScheduleImpl scheduleImpl = new ScheduleImpl();
//Making network call to get data using token
scheduleImpl.getData(scheduleList(i));
}
}
(例如:id
将things
作为主键。