我面臨從數據庫提取數據的問題。問題是我擁有多個版本的數據庫。每個版本的可用列數都不相同,並且列的名稱(標籤)也可能會發生變化。從數據庫中提取數據但使用不同的數據庫版本
例如: 一個版本具有與名稱contact
列,但與另一種版本是contact_name
(它們表示相同的信息)。
問題是我該如何處理列名可以從一個數據庫版本更改爲另一個的情況。另外,如果可能的話,如果更多的信息(列)已被添加到數據庫中,則減少更改我的源代碼的需要。
我想在開始編碼之前聽到一些建議。
我面臨從數據庫提取數據的問題。問題是我擁有多個版本的數據庫。每個版本的可用列數都不相同,並且列的名稱(標籤)也可能會發生變化。從數據庫中提取數據但使用不同的數據庫版本
例如: 一個版本具有與名稱contact
列,但與另一種版本是contact_name
(它們表示相同的信息)。
問題是我該如何處理列名可以從一個數據庫版本更改爲另一個的情況。另外,如果可能的話,如果更多的信息(列)已被添加到數據庫中,則減少更改我的源代碼的需要。
我想在開始編碼之前聽到一些建議。
如果你不能改變數據庫看看實現你的代碼和數據庫之間的抽象層:
Database abstraction layers通過提供一個一致的API開發人員減少作業量和隱藏儘可能在這個接口後面的數據庫細節。
然後,您可以開發而不必擔心底層結構,幷包含有關在此層中的數據庫中使用哪些列的所有信息。
實際上,您使用的內容取決於您使用的語言,您使用的數據庫以及應用程序的設計方式。
這是一個很棒的提示,謝謝。 – user1894963
我使用的語言是Java。並且數據庫是sqlite。 – user1894963
是不可能使數據庫模式相互配合?您所做的每一項更改都將成爲另一項修改:/ – webnoob
您可以對此做些什麼很大程度上取決於您的編程語言和其他框架。例如,像Ruby on Rails這樣的框架想要使用數據庫列的確切名稱作爲對象的屬性,而其他框架則允許您創建一個列名映射到對象屬性的映射表。但是,這似乎是一個非常糟糕的軟件工程選擇。大多數情況下,您希望在開始編寫代碼之前大致確定數據庫模式。儘管有些框架可以讓你做到這一點,但你一定會頭痛不已。 –