這取決於您使用的技術。例如在PHP Symfony Project中,設置主要存儲在平面文件(Json,xml ...)中。
我曾經爲客戶開發過許多大型Web應用程序。鍵/值表通常用於存儲簡單設置。如果你需要存儲多個值,你必須序列化它們,所以這有點棘手。
請記住密碼敏感數據,如密碼(Sha256 +鹽)。
最好的方法是創建兩個表。 一個表來存儲設置爲鍵/值:
CREATE TABLE Settings (
Id INT NOT NULL PRIMARY KEY,
Key NOT NULL NVARCHAR,
Value NULL NVARCHAR
EnvId INT NOT NULL
);
然後,你需要一個環境表。
CREATE TABLE Environment (
Id INT NOT NULL PRIMARY KEY,
Key NOT NULL NVARCHAR,
);
不要忘記外鍵約束。
此外,你應該在一個單獨的模式中創建這些表。您將能夠通過過濾訪問來應用安全策略。
因此,您只需激活一個環境就可以使用許多環境(開發,測試,生產,...)。例如,您可以配置爲不在發展環境中發送電子郵件,但在生產環境中發送它們。
因此,您執行連接以獲取指定環境的設置。您可以添加一個布爾值來輕鬆切換環境。
如果你使用一個文件(它不需要數據庫連接),你可以得到類似的東西(JSON):
所有的
Env:
Dev:
Email: ~
Prod:
Email: [email protected]
那正是我要去做的事情,幾乎有一個頁面,我可以編輯所有的setti而不是手動進入數據庫,或者將其硬編碼到我的服務器某處的config.php文件中。當我更新設置行值時,是否還需要使用ALTER QUERY COMMAND? – xtrman 2014-12-06 01:12:28
不,你將不得不執行一個'UPDATE'查詢。例如'UPDATE settings_table_name SET setting_value ='new title'WHERE setting_name ='title'' – 2014-12-06 01:17:35
謝謝你:),完全理解。 – xtrman 2014-12-06 01:20:29