2011-03-24 7 views
2

データベースのテーブルを作成する際に問題があります。私は各農家の多くの地位を記録したいと考えています。例えば、農家は水田農業で多くの手続きを行い、耕作から収穫まで約26の手続きをします。テーブルに格納されている属性の数を減らす

したがって、各農業従事者は、農業援助機関によって定められた日付に従って各手続きのスケジュールに従わなければなりません。私の問題は、農家がスケジュールに従っているかどうかを記録するために、この手続きのステータスを記録する方法です。今のところ、私は属性

farmerID, status1 (for activity 1 eg: Cultivation) , 
status2 (for activity 2 eg: fertilization), 
status 3 

というように、ステータス26までを持って活動テーブルのように、私は、アクティビティテーブルの属性として26個の手順を使用し...これが正しい方法ですか?私の講師は、非常に多くの属性があるので、間違っていると言います。この問題から私を助けてくれますか?私はこれ以上考えることはできません。

答えて

3

特に新しいフィールドを追加したり、コードマップに新しいフィールドを追加したりすることなくすぐにスケーラビリティが向上するわけではないので、それを処理するには良い方法ではありません。私はこのような何かしたい: - farmerId

tbl_status - statusId -

tbl_farmer 名(すなわち栽培など)

tbl_activity - farmerId - statusId

そして、農家がステータス更新を行うたびに、エントリをtbl_activity内に配置します。基本的にtbl_activityは参照テーブルです

+0

uは...私の例を与えることができますか?各農家が26の活動を実行するので約26時間.... – Miera

+0

それは正しいです。 – StephenPAdams

0

代わりに、各アクティビティ(プロシージャ)にIDを与え、多くの列の代わりに3つしか持たないようにすることもできます。

farmer_id 
activity_id 
status 

アクティビティが別のテーブルに格納されているとします。私は農家の多くの時間、右の同じIDを持っていますテーブルの活動のよう

+0

なので、このテーブルの様子を想像できません...ドラフトはありますが、まだ理解できません...農民のIDを26回繰り返す必要がありますか?各農家が26の活動を行うため... – Miera

+0

はい、各農家IDごとに26行が必要ですが、新しい活動や農家(特にアクティビティ)を追加することはあなたのスキーマにとって難しくありません。 – Belinda

0

enter image description here

関連する問題