2

私は ASP.NET 開発者ですが、データベース関連のことはまったくしません。しかし、Codeplex での私のオープン ソース プロジェクトでは、プロジェクトのデータベース スキーマをセットアップする必要があります。

だから、あちこちから読んで、私は次のことをすることができました。

ここに画像の説明を入力

データベース スキーマの設計に慣れていないので、このトピックについてより良いアイデアを持っている他の誰かに、この設計の問題を特定するのを手伝ってもらいたいと思っていました。

ほとんどの関係は自明だと思いますが、それでもそれぞれを書き留めます.

UserProfileIssuesの間の 2 つのキーは、 UserIdIssueCreatedByおよびIssueClosedByの間の関係のためのものです。

ありがとう

4

1 に答える 1

2

これは非常に良さそうです。IMOの主な問題は、名前の一貫性と単純さです。

  • 各テーブル識別子がIdの場合、すべてのテーブルに使用する必要があります。
  • テーブル名の単数形/複数形との一貫性を保ちます。私は単数を好む傾向があります。

テーブル名を単純化できます:

  • UserProfile=>User

フィールド名と同様に:

  • Issue_Title=>Title
  • Issue_Description=>Description
  • Issue_Priority_Type=> Type(またはさらに混乱が少ないName:)

ただし、外部キーにはより正確な名前を使用します

  • CreatedBy=>CreatedByUserId
  • ClosedBy=>ClosedByUserId

HTH。

于 2012-11-13T10:58:26.243 に答える