2014-02-16 49 views
1

我正在開發小應用程序。 它是像應用程序的小CMS。本網站的管理員應該可以選擇更改應用程序中的設置。像標題中的文字,當天的消息。哪裏可以保存Web應用程序的配置數據?

我應該在哪裏存儲這些值?數據庫中的表?某種文件?我希望管理員能夠從網站更改這些值,而無需在服務器上手動編輯文件。

回答

1

我認爲用WebSiteSettings DB的小表將是最好的解決方案,對我來說。

EDITED

WebSiteSettings表例如:

PK Id    [int]    not null 
    StrTmplVal_1  [nvarchar(128)] null 
    StrTmplVal_2  [nvarchar(256)] null 
    StrTmplVal_3  [nvarchar(512)] null 
    BoolTmplVal_1 [bit]    null 
    BoolTmplVal_2 [bit]    null 
    BoolTmplVal_3 [bit]    null 
    IntTmplVal_1  [int]    null 
    IntTmplVal_2  [int]    null 
    IntTmplVal_3  [int]    null 

WebSiteSettings模型例如爲個人網站:

SettingsId   -> Id    
    SiteName    -> StrTmplVal_1  
    PageHeader   -> StrTmplVal_2  
    WelcomeText   -> StrTmplVal_3  
    IsDemoVersion   -> BoolTmplVal_1  
    IsTilesShowed   -> BoolTmplVal_2  
    MaxRowCountOnPage  -> IntTmplVal_1  
    WelcomeAnimationDelay -> IntTmplVal_2 
+0

但它應該看起來如何?帶有「鍵」「值」列的表格? 價值長度類型差異怎麼樣? 它是如何解決「大」的應用程序? – Hooch

+0

您可以使用字符串,int和bool類型創建具有多個列的表格,並將它們映射到不同網站的不同模型上。我現在的網站標題(和其他東西),你不需要大量的模板,他們不是很大(像往常一樣字符串變量少於512個字符)。 – melvas

+0

這是「很多專欄」的好主意。我知道了。但是,如果你想要接受答案,你應該稍微編輯一下,併爲將來可能來到的其他人舉例。再次感謝您的想法。 – Hooch

1

我想按照這個結構的表是一個開始:

表設置 ID(int, primary key), Name(varchar)

表SettingValuesID(int, primary key), SettingID(int foreign key), Value(blob)

請注意,我用BLOB(二進制大對象)類型的設置的實際值。因此,您可以通過序列化來保存設置。

希望我幫了忙!

+0

不錯,但我不明白爲什麼沒有名稱和值(blob)單表?我是SQL新手,我對學習這些小技巧感興趣。 – Hooch

+0

因爲對於某些設置你可能有很多值...如果你不需要「一對多」的關係,你可以把它放在一個表中...... –

相關問題