我是一名ASP.NET开发人员,我真的不喜欢这样的数据库。但对于我在Codeplex上的开源项目,我需要为项目设置数据库模式。
所以从这里和那里读取我已经设法做到以下几点。
作为数据库模式设计的新手,我想让其他一些对此主题有更好想法的人帮助我找出这个设计的任何问题。
我认为大多数关系都是自我解释的,但我仍然会记下每个关系。
UserProfile 和问题之间的两个关键用于 UserId 和 IssueCreatedBy 和 IssueClosedBy之间的关系
由于
答案 0 :(得分:1)
这看起来相当不错,IMO的主要问题在于命名一致性/过于复杂的名称。
Id
,则应将其用于所有表。您可以简化表名:
UserProfile
=> User
以及字段名称:
Issue_Title
=> Title
Issue_Description
=> Description
Issue_Priority_Type
=> Type
(甚至更少混淆:Name
)等
但是我会使用更准确的外键命名
CreatedBy
=> CreatedByUserId
ClosedBy
=> ClosedByUserId
HTH。