醫院業務作業流中有一張申請單,上面記錄了本次住院病人的基本資訊和需要沖負的費用項明細。
設計申請表的時候,我將病人的基本資訊,包括姓名,性別,出生日期,本次住院的病情等資料都設計在申請主表中。提交給dba的時候,他卻說這樣設計是資料冗余,只需要在申請主表中保留病人主索引id和住院的主id即可,資料展示的時候再去關聯病人資訊表和住院資訊表。我們醫院的病人主索引表和住院資訊表都是大表,幾百萬上千萬條資料,從建庫到現在都沒有做過歸檔分割,雖然主鍵有索引,但是也不應該這么干啊。而且申請單是個快照單據,創建單據的時候就該保存當時的完整資訊,至于作業流流轉當中資訊發生變化,都以當時申請提交的資料為準,改成關聯的話,以后資料有變化,比如病人改名,銷戶或者住院資訊變更,我這張申請單的資料顯示都得跟著變。大家討論下怎樣設計才合理?
uj5u.com熱心網友回復:
純文字看著有點累啊..看了三遍還是沒搞清楚現狀是什么樣的. 只看懂了需求是 加一個 申請主表...
如果你認為你有些資訊在申請主表,不應該隨著病人的資訊改變而更新,那么你這樣冗余就是有道理的. 你也發現這個問題了.所以應該向DBA咨詢一下這一點要怎樣處理呀...
uj5u.com熱心網友回復:
可以在列印那里呼叫的時候添加一個程序的呼叫。重建一張表進行存盤列印資料。
程序里面,將需要列印的那些引數欄位insert/update到那張表里面
查詢申請單的時候也是查這張表
uj5u.com熱心網友回復:
這是個很古遠的話題,是保留適當冗余,還是想去遵循標準范式。沒有一個明確的標尺衡量誰對誰錯。
DBA應只是提建議,而非拘泥于某些規范。
更多的應該是從業務出發,如果冗余的資料很少發生變化,或者不用聯動更新,適當的冗余能提升開發的效率。未嘗不可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/94869.html
標籤:開發
下一篇:吐槽,吐槽。
