1

非常に単純なバグ追跡システムを作成していると想像してください。私はバグのリストを持っています。現在、データベースでは次のようになっています。

ID  Title           Details         CreatedDate
1   someTitle       someDetails     26/09/2012
2   otherTitle      otherDetails    27/09/2012

個々のバグの履歴が保存されるように、このテーブルにバージョン管理を追加しようと考えています。私は次のようなことを考えていました:

ID  BugID   CreatedDate
1   1       26/09/2012
2   3       26/09/2012


BugID   Title           Details           RevisionGroup
1       someTitle       someDetails       1
2       otherTitle      otherDetails      2
3       otherTitle      changedDetails    2

最初の表にバグのリストがあり、2 番目の表のバグの最新バージョンにリンクしています。RevisionGroup 列は何にもリンクされていません。現在そこにある最大値を取得し、新しいバグを挿入する必要があるときに増分します。

私のデータベース設計はかなり不安定ですが、これについて考えてみたところ、うまくいくはずだと信じています。これは物事を進めるための最良の方法のように見えますか? より良い方法はありますか?

4

1 に答える 1

1

素敵な質問形式:)

最新のバグが必要なだけなので、バージョンの代わりにタイムスタンプを入力してください。これにより、新しいバグを入力して最新バージョンを探すときに行う追加のクエリが 1 つ節約されます。ビジネス ルールでバージョン番号の要件が規定されている場合を除きます。そうではないとおっしゃったと思いますが、現在の設計には他に問題はありません。

データベースを設計するときは、常に覚えておいてください... プロセッサを使用した計算は、どのディスク I/O よりもはるかに高速です。可能で回避可能な場合は、余分な読み取り/書き込みを避ける必要があります。

幸運を!

于 2012-09-27T14:10:50.443 に答える