我建立一個志願者管理系統,我有一些數據庫設計問題:數據庫設計問題:
爲了解釋這一過程: 志願者可以註冊帳戶。志願者將他們的時間報告給一個項目(每個志願者可以有多個項目)。當幾個小時的志願者人數已經接近一些規定量給他們一個獎勵志願者監督員通知。
例如: 誰已經主動10小時志願者接收免費的T恤。
我遇到的問題是如何設計數據庫,使得單個獎勵配置文件可以與多個項目相關聯,並且具有單一獎勵配置文件「多層次」。關於這一點很重要的一點是獎勵結構可能會發生變化,因此他們不能被硬編碼。
我的意思是「多層次」獎勵簡介的例子: 自願參加10小時的志願者會收到一件免費的T恤。 誰志願四十個小時,志願者收到$ 50升值檢查。
我拿出自己的解決方案是: 爲了有涉及一個行到每一回報狀況的獎勵概況表。
rewardprofile:
rID(primary key) - int
description - varchar/char(100)
details - varchar/file (XML)
另外,就在這個話題上,DB字段條目可以是文件嗎?
OR
成具有涉及一個預設量的獎勵表和獎勵,其中每一行是如下和結合它們的回報的第二獎勵簡檔表項一起:
rewards:
rID(primary key) - int
rpID (references rewardsProfile) - int
numberOfHrs - int
rewardDesc - varchar/char(100)
rewardsprofile:
rpID(primary key) - int
description
所以這可能看起來像這樣︰
rewardsprofile:
rpid | desc
rp01 | no reward
rp02 | t-shirt only
rp03 | t-shirt and check
rewards
rid | rpID | hours | desc
r01 | rp02 | 10 | t-shirt
r02 | rp03 | 10 | t-shirt
r03 | rp03 | 40 | check
我敢肯定這個問題是沒有新的,但我的谷歌福是薄弱的,我不知道如何phr以有意義的方式提出這個問題。我認爲必須有比我的(黑客和斜槓)方法更正式的解決方案。如果任何人都可以指導我解決這個問題或者解決問題的方法,那麼這個問題就會很大。感謝您的所有時間!
乾杯, -Jeremiah Tantongco
你有沒有看看databaseanswers.com可能存在的模式? – 2010-02-17 06:50:51