2013-06-12 47 views
0

我需要關於如何建模數據庫的幫助。我需要存儲每條交通公共線路的時間表。讓我們看看我們有什麼...如何在MYSQL中存儲很多不同的時間表?

,我正在開發該項目的目的是檢查在官方時間表錯誤。每輛巴士都有一個跟蹤GPS設備,每10秒將其位置發送到數據庫。因此,我必須檢查座標接近其中一個站點座標的報告小時數,並將該時間與官方時間進行比較,如果存在較大差異,請在其他表格STATISTICS中報告此問題。

無論如何,這只是爲了上下文。事實是,我不知道如何以有效的方式存儲它。

我想到了創建與停止的表:STOP_ID(PK) - 姓名 - LAT - LON - 線 - 時間表

凡時間表將是一個包含所有倍陣列序列爲停止[5:03 ,5:25,5:50,6:12,...]。

儘管我認爲這不是一個好的解決方案,但我無法想象一個更好的方法。

也許我可以創建一個表格,其他的時間表,但什麼是時間表的列?我有很多變數......如果是每週,週六或假日,很多小時,分鐘......以及每個站點的所有不同。

你能分享一下關於如何面對這個問題的想法嗎?非常感謝你!!

+0

我建議你做進一步的研究,或者聘請可以幫助你完成這個設計和實現的人。恐怕這不是真的這個網站的用途。沒有辦法避免它花費你的時間和/或金錢。 –

+0

@ Simonatmso.net我正在爲我的大學的最終項目工作。我製作了一個Android應用程序和其他一些東西。我已經完成了整個項目,我的協調員想要添加這個功能(一些簡單的軟件來檢查時間表是否有錯誤)。我認爲這是可能的唯一方法是製作這個數據庫和一些PHP腳本,但我不知道如何以有效的方式來面對這個設計。現在你可以想像,我不會僱用某人,我只是想在這方面尋求一些想法或幫助。我一直在研究,但我仍然有很多疑問。無論如何,謝謝您... –

+1

簡單的答案是您想要將數據存儲在規範化的數據庫中。閱讀數據庫規範化,並計算出你的表需要存儲什麼,即'停止''route'' routeHasStops',然後可能是一個'scheduledStop'表,記錄給定'routeHasStops'行的期望停止,然後是日誌記錄表,它將記錄實際的日期/時間與'routeHasStops' pkid。根據需要添加緯度/經度和其他數據,一些數據收集,處理和嘿presto你會有你的數據。如果您在這條道路上遇到了特殊問題,我很樂意提供幫助:) –

回答

2

正如西蒙所說,你正在開始一個大項目。

建議:閱讀關於關係數據庫管理系統的各種常規表單;如果你沒有它,這會給你一些有用的背景。

什麼是您的實體(表格)?公交線路(考慮出站和回程是兩條不同的線路)。 這些線路上的電臺,已訂購。 旅程(例如05:22出發的106路巴士中央車站,05:42出發的另一次出行等)。 預定站點 GPS觀測。

以下是可能的表和列:

Busline table: one row for each busline. 
    Busline e.g. 106-outbound or 108-inbound (pk) 
    Description 

Station table: one row for each bus stop, including ends of trips 
    Busline  part of pk, fk to Busline e.g. 106 
    Stationid  part of pk kf to Station 
    Description e.g. Second Avenue Eastbound at Houston Street 
    lat 
    long 

Trip table: One row for each bus trip. 
    Tripid pk 
    Busline fk to Busline 
    Description e.g. 05:22 trip Central Station to University Park 

Schedule table: one row for each scheduled time for each trip at each stop 
    Scheduleid pk ... ascending serial number. 
    Busline  fk to Station 
    Stationid fk to Station 
    Tripid  fk to Trip 
    Time 

Observation table a row for each of your GPS readings 
    Observationid pk ... ascending serial number 
    Busline if you know it fk to Busline 
    Tripid if you have it fk to Trip 
    Time 
    Lat 
    Long 

我與RDBMS設計建議是避免序列化數據的多個項目到一個DBMS列。這就是爲什麼我建議安排表。

一旦您計算出如何載入Busline,Station,Trip和Schedule表格,並且您已將觀察結果加載到Observation表格中,將觀察值與您的時間表關聯起來將是一個有趣的練習。

小心!你可能會讓你的市政交通部門感到難堪! :-)

+0

對於像您這樣有限的項目,您可以選擇僅測量幾條公交線路和車次上的幾個車站。您可以在兩條最受歡迎的公交線路上分別測量兩次旅行的首次,中間和最後一站。這將證明和證明你的技術的價值。無論如何,不​​要將多個數據項序列化爲單個列,除非您想要在脖子上留下很大的痛苦!哦,你需要爲你的GPS座標使用接近性而不是平等標準。查找半胱氨酸配方。 –

+0

哈哈,我希望不要尷尬任何人XD非常感謝您分享您的想法並花時間幫助我。現在,我真的有興趣開發它,我的意思是說,在學習和練習方面,但是恐怕這個時間太長了,我離開的時候,比開始時預計的要大。作爲項目的延續,我會請求協調員將此作爲未來的改進。我真的希望能夠花時間在不久的將來學習和開發它。 –

+0

對不起,我發佈時未讀取最新答案。我認爲這是一個很好的主意,只要做一點示範,說明它們如何能夠在它們每一個的幾行和幾個停止位置上工作。作爲未來的項目留下完整的發展。是的,爲了比較公交車報告的位置和每個車站的存儲位置,我已經考慮了接近性測量的半夏公式。非常感謝你奧利! –

相關問題