【发布时间】:2023-03-10 15:56:01
【问题描述】:
我正在尝试设计我的数据库表以从routes 表中获取route,这取决于骑手的位置,并且时间必须达到当前时间。当我在所有表中插入一些数据然后routes 和arrivalestimes 表中的stop_id 是NULL 时,我遇到了问题?数据库设计有问题吗?
一站有多条路线。一条路线有很多站。一站有很多到达时间。
感谢您的帮助。
CREATE TABLE IF NOT EXISTS stops
(stop_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(30) NOT NULL,
lat double(10,6) NOT NULL,
longi double(10,6)NOT NULL)
INSERT INTO stops(name, lat, longi) values
('ABC', '63.838039', '18.700440' ),
('DEF', '63.840642', '18.701246' ),
('HIG', '63.868863', '18.665438' )
CREATE TABLE IF NOT EXISTS arrivaltimes(arrivaltimes_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
weekday VARCHAR(20) NOT NULL,
arrivaltime time NOT NULL,
stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )
INSERT INTO arrivaltimes(weekday, arrivaltime) values
('mon-fri', '05:30' ),
('mon-fri', '06:07' )
CREATE TABLE IF NOT EXISTS routes
(routes_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
route INT(11) NOT NULL,
stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )
INSERT INTO routes(route) values
('1'),
('9')
【问题讨论】:
-
请去掉
stt.execute()的包装,直接显示SQL代码。这将比您现在拥有的更具可读性。 -
您必须在最后一条sql语句中显式插入外键的值以及其他属性,例如路由。