比方說,我有一個帳戶創建表單,填寫用戶數據庫。假設這個數據庫表有6列:UserID,UserLogin,Password,Email,Demographic1,Demographic2。實際需求與業務需求
程序確實需要UserID,UserLogin和Password。它不能沒有。其餘的是「業務需求」,公司想知道這些事情。他們是「必需的」。
構建我的應用程序和數據庫以便實際需要這些應用程序和數據庫,還是在業務邏輯中強制執行此約束會更好嗎?
我的直覺告訴我第二個選擇,但在我看到的幾乎所有生產代碼中,第一個通常就是這種情況。
這是缺乏計劃,或某種形式的印記從業務/下午程序員(他們告訴我這是必需的,我會做到這一點)。或者,有沒有令人信服的理由?
是的,但是該存儲(可以說DB)要求它們,還是應用程序的責任(應該是可以爲空的) – aepheus
從我的角度來看,這取決於這些屬性的生命週期(而不是空)。如果它們應該保留它們的值並且不以任何方式進行計算,那麼將它們放入db。如果沒有,讓應用程序照顧他們。 – a1ex07
他們有一個無限的生命時間,我不想說他們不會被放在數據庫中。我的問題是應該在數據庫中執行「必需的」(但不是技術上要求的)約束,還是應該在業務邏輯中強制實施,還是兩者都必須執行? – aepheus