我是django的新手,我已经开始将现有API移动到Django。当前的API有多个数据库。
例如,表account
位于数据库A
中,表notification
位于数据库B
中。
它是运行应用程序的遗留数据库,因此我无法更改数据库。
为了便于说明,两者的结构都是 -
帐户表
+-----+--------------+
| id | account_name |
+-----+--------------+
| 123 | John |
+-----+--------------+
| 124 | Henry |
+-----+--------------+
| 126 | Vlad |
+-----+--------------+
通知表
+----+------------+-----------------------------------+
| id | account_id | notification_body |
+----+------------+-----------------------------------+
| 1 | 123 | Someone sent you a message |
+----+------------+-----------------------------------+
| 2 | 123 | Someone commented on your photo |
+----+------------+-----------------------------------+
| 3 | 126 | Someone sent you a friend request |
+----+------------+-----------------------------------+
在上表中,notification
。account_id
是一个与account
。id
相关的外键,它是account
中的主键。表。我想加入这两个表,相当于以下SQL查询。
SELECT * FROM A.account AS acc
JOIN B.notification ON noti ON noti.account_id = acc.id
Django使用外键使用select_related()
函数连接表。现在,问题是,我有外键,不仅限于一个数据库。但是,django目前不支持多个数据库上的外键。那么,如果外键关联连接不可行,我们如何加入Django中另一个数据库中的那些表呢?
请记住,这两个表都在不同的数据库中。