python - 具有组合框外键的问题数据库
问题描述
在具有外键的关系数据库(SQLite)中,我有一个表Nations
,其中包含以随机顺序插入的国家,如法国、意大利、英国、日本。
然后我有另一张桌子Cities
,其中包含随机放置的城市,如东京、巴黎、伦敦、罗马、波尔多、京都、利物浦、米兰等。
我使用外键将城市与国家联系起来。我觉得我做得很好,问题是我不能进入每个相关国家的每个城市。
例如我不能那样做:英格兰=伦敦,利物浦;日本 = 东京、京都。
为了查看国家和城市之间的这种关系,我使用了两个组合框:我想在第一个组合框中选择一个国家,然后在第二个组合框中我想显示所选国家的相关城市。我究竟做错了什么?为什么城市和国家之间的关系不起作用?
你能回答我给我看看代码吗?谢谢
这是Nations
表格:
CREATE TABLE "Nations_Table"
(
"ID_Nations" INTEGER PRIMARY KEY AUTOINCREMENT,
"Nations" TEXT
);
这是Cities
表格:
CREATE TABLE "Cities_Table"
(
"ID_Cities" INTEGER PRIMARY KEY AUTOINCREMENT,
"Cities" TEXT,
"ID_Nations" INTEGER,
FOREIGN KEY("ID_Nations") REFERENCES "Nation"("ID_Nations")
ON DELETE NO ACTION ON UPDATE NO ACTION
);
这是我使用的 Python 代码,但它当然不能正常工作:
### COMBOBOX NATIONS ###
def combo_nations():
cursor.execute('SELECT DISTINCT Nations_Table FROM Nation_Table')
result=[row[0] for row in cursor]
return result
### COMBOBOX CITIES ###
def combo_cities(event=None):
val = nations.get()
cursor.execute('SELECT Cities_Table FROM xxxx WHERE xxxx = ?', (val,))
result = [row[0] for row in cursor]
citiesss['value'] = result
citiesss.current(0)
nations=ttk.Combobox(window, width = 25)
nations['value'] = combo_nations()
nations.bind('<<ComboboxSelected>>', combo_cities)
nations.place(x=13, y=80)
nations.set("Choose Nations")
combo_cities=ttk.Combobox(window, width = 25)
combo_cities.place(x=13, y=120)
combo_cities.set("Choose Cities")
解决方案
推荐阅读
- excel - 使用用户表单数据,如何仅将字段的前五位数字传输到我的数据库字段(交叉发布)
- java - Eclipse IDE 内部和外部 Tomcat 调用上下文的差异
- raspberry-pi - 如何通过终端将 Raspbian OS 4.14 升级到 4.19
- arrays - BeautifulSoup,请求,数据框保存到 Excel 数组错误
- asp.net - 500 - 内部服务器错误,将 windows server 2012 R2 迁移到 windows server 2016 后
- ruby-on-rails - 有没有办法将同一组 id 发送到两个不同的操作,例如 new 和 show?
- reactjs - 使用酶发送到子元素的测试回调函数
- mysql - 在不停止 docker 容器的情况下在 docker 中停止 mysql
- ruby-on-rails - 修复已删除表(包括模型)的现有迁移的未初始化常量错误
- docker - Makefile 中的嵌套变量为 docker 提供条件支持