2008年6月25日水曜日

プロコンのデータベース

今年は、プログラムの方に参加しよう。
せっかくもらったVisual Studio2008があるので、これを使おう(LINQとかXAMLとか)
DB:SQL Server 2005 Express SP2
開発言語:C#
アプリ形態:Windows Application(XAML:なんかグラフを書かなきゃいけないみたいだから)
とりあえずテーブル定義だけ、こんな感じでやってみます。


データ取得は、作成したLinQtoSQLクラスから以下のようにSQLっぽい書き方で取れるみたい。
DataClasses1DataContext dtc = new DataClasses1DataContext();
var query = from p in dtc.Project
where p.Id == 1
orderby p.Name
select new{p.Name,p.Id};


最後に折れ線グラフについては、xamlで、 以下のようにCanvasの中に名前付きPolylineを埋めておき




プログラムの中で、以下のように属性を変更しちゃえばかけるみたい。
     polyline1.Points.Clear();
Random rand=new Random();
for (int i=0;i<10;i++) { polyline1.Points.Add(new Point(i * 10, rand.Next(100))); }


2008/7/23 追記:
LinuxのMONO+XSP2でも動かせるようにするので大幅方針転換。
・利用データベースに(ゆくゆくは)SQLiteを追加できるようにしておく。
・LINQ2SQLはやめて、DataSetとDataAdapterを使ったADO.NETの書き方にする。
 理由は、LINQ2SQLがSQL Server専用であることと、xsp2では(たぶん)対応していないことから。
・PolyLineを使うのではなく、オープンソースのグラフ描画ライブラリを使う。
 理由は、描画ライブラリの方が簡単そうだから。
・データベースの若干の見直し。
 TaskWorkerテーブルの列をTaskId,WorkerIdのみにして、この2つの要素を複合したものを主キーとする。
 WorkTimeテーブルの列からTaskWorkerIdを削除、TaskId,WorkerId列を追加し、この列を複合の外部キーとする。
  (参照元のキーは、TaskWorkerのTaskId,WorkerId)

0 件のコメント: