Я пытаюсь создать таблицы моей базы данных, чтобы получить route
из таблицы routes
, зависит от местоположения всадника, и время должно достигнуть текущего времени. Я столкнулся с проблемой, когда я вставил некоторые данные во все таблицы, тогда стоп_ид в routes
и arrivalestimes
таблицах: NULL
? Что-то не так с дизайном базы данных?Ключ forgein имеет значение 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()' wrappers и просто покажите код SQL напрямую. Это было бы намного более читаемым, чем то, что у вас есть сейчас. –
вы должны явно вставить значение внешних ключей, а также другие атрибуты, такие как маршрут в последнем SQL-выражении. – Mahmoud