作者vi000246 (Vi)
看板C_Sharp
標題[問題] 想問網站設計規劃的問題
時間Sat May 6 02:07:46 2017
我的職務主要是做官方網站的開發維護
官網會有許多活動
每個活動頁面都長不太一樣
裡面會有表單讓使用者填寫
表單內容有些是一次性的欄位
其他活動用不到的
採用asp.net mvc開發
目前都是將這些活動頁面放在Areas裡
採用活動日期當檔名
例如20170506xxxxController
資料庫也是這樣開
20170506xxxxTAble之類的
第一次看到這種寫法
假如一年辦個100場活動就有100個controller
覺得架構這樣弄應該不太對
但我也想不到更好的寫法
以前寫過類似的最新消息頁面
是直接撈資料庫裡的html字串
但在這間公司有設計師負責前端排版
而且版面比純文字複雜得多
撈資料庫的作法應該行不通
想問還有什麼比較好的design pattern適用這情況嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.181.178.108
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1494007669.A.702.html
1F:→ testPtt: 怎不開獨立專案? 05/08 14:19
每個活動只有簡單的幾個頁面 填填表單而己
有點類似問卷平台的設計
可以新增活動 自訂每個活動所需表單的欄位 再存檔到資料庫
我抄網路上的設計出Table 如下面的pdf
https://tinyurl.com/kan37vy
但在後端entity的部份
就不知道要怎麼binding 從view post回來的資料
而且驗證也不好寫
這是我在stackoverflow發問的連結
https://stackoverflow.com/questions/43834428/how-to-validate-survey-table
※ 編輯: vi000246 (175.181.178.108), 05/08/2017 21:11:24
2F:→ ssccg: 資料收完了還會再改? 查詢需求有很複雜? 05/08 21:21
3F:→ vi000246: 不會再更動欄位 很簡單的驗證與存檔 05/08 21:49
4F:→ Litfal: DB建成key-propertyName-value的結構 05/09 00:12
5F:→ Litfal: 寫一個interface service提供前端到後端的驗證與轉型,以 05/09 00:21
6F:→ Litfal: 及一些基本查詢,基本查詢可以寫在抽象類別或幫助類內 05/09 00:22
7F:→ Litfal: 每個活動建立一個Service,實作IService。大致只需要實作 05/09 00:27
8F:→ Litfal: 驗證部分。其餘由幫助類或基底類別一次性的做掉。 05/09 00:27
9F:→ Litfal: 前端需要給後端一個活動檔名做關鍵字,例如20170506xxxx 05/09 00:29
10F:→ Litfal: 然後Controller利用反射或是靜態Create方法建立IService。 05/09 00:30
11F:→ Litfal: Controller直接用FormCollection,並交給IService去處理 05/09 00:32
12F:→ Litfal: 缺點是DB的查詢效率會比較差,如果有複雜的查詢或統計,或 05/09 00:33
13F:→ Litfal: 是使用量很大,那會有一點麻煩 05/09 00:34
IService是把像下面的結構
key propertyName value
"欄位1" 1
"欄位2" 2
對應到下面的class嗎
public class field{
欄位1
欄位2
}
感謝L大的回答 我再來研究要怎麼實作
※ 編輯: vi000246 (175.181.178.108), 05/09/2017 08:51:36