我有一個非常舊的應用程序,它使用需要更新的SQL數據庫。我還想借此機會改進數據庫結構,我希望能提供一些建議。用戶可以在其中創建數據類型的數據庫
基本問題是數據庫的一個重要部分必須是用戶可配置的,而無需觸摸代碼。更具體地說,DB存儲產品,並且這些產品根據類型具有不同的規格(即列)。該應用程序必須能夠搜索任何列。只有幾種類型(〜20),但管理員必須能夠創建一個新的,而不需要觸摸代碼。 需要爲每個產品存儲的數據是字符串或浮點數,每種類型不能超過7個。
而不是創建一個接口來創建和刪除表,實現了以下「解決方案」。 - 在產品表中,id有一列; ProducTypeID的一列; 7個字符串列和7個浮動列 - 在ProducType列中,有一個ProducTypeID列,14個字符串列指示每個產品類型的7個字符串列和7個浮動列的名稱。如果一個產品不需要那麼多的列,那麼列名是NULL
這可以工作,但是由於額外的間接性對維護客戶端代碼非常惱人。
現在的問題是:我應該留在一個SQL數據庫,並添加一種方式來創建/刪除表,或者我應該使用一個noSQL數據庫?每種情況下的優點和缺點是什麼?
並非所有的NoSQL數據庫都是無模式的。 – Philipp
@Philipp:你偏離正軌。感謝您的澄清。 – Hernan