2009-08-18 18 views
1

私は初心者のプログラマーです。私は学校のための「学生プログラム」を改善したいと思っています。プログラムでは、レッスン情報を追加します。例:どのように私はasp.netでそのデータベースを設計する必要がありますか?

Student X 
Lesson name 1st exam 2nd exam 3rdexam 
mathematics 80   70   80 
history  70   70   70 
... 

私は、3つのテーブルを持つKFSを呼び出したデータベースを持っています。

Identity 
RecordID | firstname | lastname | address | city 

Lesson 
LessonID | name | description 

Lessondetail 
DataID | RecordID | LessonID | lessonname | firstpoint | secondpoint | thirdpoint 

私はすでにGridViewに学生リストを表示できますが、選択した学生のポイントも表示したいと考えています。

私のデータベースはこのアプリケーションには十分ですか?はいの場合、どうすればその関係を設計し、gridviewで表示できますか?データベースを変更する必要がありますか?

答えて

0

Dan Diplo's adviceについては、の正規化について約2回あります。常に3つの試験があることが確実でない場合は、残念ながら、それは必要なフォーマットでデータを取得するためにピボットを必要としますが、それは別の質問です。また、LessonNameLessonDetailにありますが、代わりにLessonから取得する必要があります。

ASP.NET側は非常に簡単です - それはちょうどstandard Master/Detailsビューです:

<asp:GridView DataSourceId="dsStudents" runat="server" DataKeyNames="RecordId" /> 

<asp:DetailsView DataSourceId="dsLessons" runat="server" /> 

<asp:SqlDataSource ID="dsStudents" runat="server" SelectCommandText= 
"SELECT RecordID, firstname, lastname, address, city 
FROM Identity 
ORDER BY RecordID" 
/> 

<asp:SqlDataSource ID="dsLessons" runat="server" SelectCommandText= 
"SELECT D.LessonID, L.Name, FirstPoint, SecondPoint, ThirdPoint 
FROM LessonDetail as D 
JOIN Lesson as L ON 
    D.LessonID = L.LessonID 
WHERE D.RecordID = @r 
ORDER BY D.LessonID" 
> 
    <SelectParameters> 
     <asp:ControlParameter Name="r" ControlID="gvStudents" 
     PropertyName="SelectedDataKey" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
+0

にリンクしてくださいMark and Danありがとうございました。私は、改善し、答えなければならないことがたくさんあることを知っています。ステップバイステップで、それはより明確になります。再度、感謝します :) –

1

私の最初の考えは、あなたのデータベースデザインを見ているときです(それはもっと明確にするために編集することができます):LessonDetailは常に3つの試験をしますか?それとも将来的にもっと時間があるのだろうか?

私はこのような何かにそれを破るように誘惑されるだろう:あなたが必要としてレッスンをできるだけ多くの試験ポイントを持つことができる方法

LessonDetail(DetailID, DataID, RecordID, LessonID, LessonName) 

LessonPoint(DetailID, Point) 

+0

3試験は一例でした。将来的にはそれ以上の可能性があります。 –

+0

試験を別にして、レッスン – abatishchev

関連する問題