我正在尝试从stops
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)
CREATE TABLE IF NOT EXISTS arrivaltimes
(arrivaltimes_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
weekday VARCHAR(20) NOT NULL,
route INT(11) NOT NULL,
arrivaltime time NOT NULL,
stop_id INT, FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id) )
我会这样做:
CREATE TABLE IF NOT EXISTS routes
(
route_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
route INT(11) NOT NULL
)
并将此行添加到stops
表:
route_id INT, FOREIGN KEY fk_route_id(route_id) REFERENCES routes(stop_id)
这是一个可行的解决方案吗?我怎么能这样做?
我感谢任何帮助。
答案 0 :(得分:0)
首先定义routes
表:
CREATE TABLE IF NOT EXISTS routes (
route_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
route INT(11) NOT 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
);
CREATE TABLE IF NOT EXISTS arrivaltimes (
arrivaltimes_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
weekday VARCHAR(20) NOT NULL,
route INT(11) NOT NULL,
arrivaltime time NOT NULL,
stop_id INT,
route_id int,
FOREIGN KEY fk_stop_id(stop_id) REFERENCES stops(stop_id),
FOREIGN KEY fk_route_id(route_id) REFERENCES routes(route_id)
. . .
);
注意:arrivaltimes
使用route_id
,而非route
。保持一致并始终使用主键进行外键引用。
您也可以使用alter table
语句执行此操作,但按顺序定义表格更简单。