使用外键添加数据库记录

时间:2013-05-14 15:51:51

标签: mysql database foreign-keys

让我们说有一个包含两个表的数据库:一个客户表和一个国家表。每个客户行包含(除其他外)countryId外键。我们还假设我们正在从数据文件填充数据库(即,它不是从UI中选择国家/地区的运营商)。

最佳做法是什么?

  1. 首先应该查询数据库并获取所有国家/地区的所有ID,然后只提供插入查询中的(现在已知的)国家/地区ID?这对我的国家/地区来说不是问题。例如,如果表中有大量记录被引用怎么办?

  2. 或者,插入查询是否应使用子查询根据国家/地区名称获取国家/地区ID?如果是这样,如果该国家的记录尚不存在并且必须添加,该怎么办?

  3. 还是另一种方法?还是依赖于它? :)

1 个答案:

答案 0 :(得分:1)

我建议您在插入查询中使用联接来根据国家/地区名称获取国家/地区ID。但是,我不知道每个SGBD是否可以实现这一点,并且你不会对你正在使用的那个提供更高的精确度。