簡體   English   中英

在 PostgreSQL 中創建一個靈活的數據庫

[英]Create a flexible database in PostgreSQL

我想創建一個數據庫記錄汽車在 PostgreSQL 中每條街道墜毀。 數據庫應包含以下條目:日期范圍、街道名稱、崩潰日期范圍僅存儲從 2020-01-01 到 2020-01-05 的日期范圍在該日期范圍內在那條街上發生了車禍,如果不是,則為 FALSE。

我現在有一個包含這些信息的 pandas.dataframe 數據,並希望通過 python 腳本將其上傳到 psql 數據庫中。

我想實現兩件事:例如,從 2020-01-01 到 2020-04-03,街道 xyz 上沒有發生崩潰。 然后我只想要那個時間范圍內的數據庫中的一個條目看起來像

[2020-01-01, 2020-04-03],xyz,FALSE

但是有可能后來我發現在那個時間段內實際上在街上發生了車禍,比如說在 2020-02-10 然后我想把這個條目分成以下三個

[2020-01-01, 2020-02-09],xyz,FALSE
[2020-02-10],xyz,TRUE
[2020-02-11, 2020-04-03],xyz,FALSE

理想情況下,如果我只為 2020-02-10 運行模擬,數據庫將識別出該日期在現有時間范圍內,並將圍繞該日期拆分時間范圍。

同樣,如果我從 2020 年 2 月 1 日到 2020 年 3 月 1 日運行模擬,程序應該意識到這也已經在現有的時間范圍內,但仍會產生結果

[2020-01-01, 2020-02-09],xyz,FALSE  
[2020-02-10],xyz,TRUE
[2020-02-11, 2020-04-03],xyz,FALSE

編輯:所以我的問題是:如何創建這樣的數據庫和 python 腳本將數據加載到其中。

我認為您的數據 model 應該改進。 似乎您計划在數據庫中只有一個表,該表完全按照您計划顯示結果的方式存儲信息。

您應該至少有兩張表,一張用於街道,一張用於崩潰,后者包含前者的外鍵。

然后,我將從崩潰的空表開始,並為每次崩潰添加一個條目。

查詢數據庫時可以輕松計算出沒有崩潰的日期范圍,無需持久化。 當新數據進來時,這將為您省去拆分范圍的麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM