【发布时间】:2015-02-15 22:44:14
【问题描述】:
所以我目前有两个表(使用 Django 模型制作),简而言之。一个为查找提供参数,另一个为查找提供历史记录。第二个表当前引用第一个表的主键以便将其链接。这一切都很好,直到我尝试将新的历史查询输入到第二个表中(因为我不确定第一个表的主键是什么)。
那么我的问题是,有没有办法将第二个表的外键与第一个表中的另一列相关联(例如“名称”)。
第一个表
id(pk) - name - data1 - data2 - data3
1 bill 3 6 9
2 sam 6 3 5
3 ken 1 2 3
第二张表(当前):
id(pk) - id_id(fk) - result1 - result2 - result3
1 2 12 12 14
2 2 67 32 34
3 1 34 34 23
第二张表(建议):
id(pk) - name_id(fk) - result1 - result2 -result3
1 sam 12 12 14
2 sam 67 32 34
3 bill 34 34 23
所以第一个表的主键几乎被替换为第一个表的名称。
所有名称都是唯一的。 感谢您的指导。
【问题讨论】:
-
您不能将 fk 与非 PK 列相关联,但您可以将第一个表中的 name 列指定为 PK,因为名称是唯一的。只需将 primary_key=True 添加到 name 的字段定义即可。
-
Hmmm.. 我正在考虑这样做,但我面临的问题是表中将有大约 50k - 100k 条记录,并且真的有一个非整数主键损害数据库性能。我想我将不得不做出妥协
-
但话又说回来......如果我没有使用主键整数来做任何事情,那么这并不重要,因为我仍在使用第二列进行实际查找。我可能会试一试,看看结果如何......