对于一个学校项目,我在ASP.NET MVC中创建了一个简单的Job Listing网站(我们必须选择框架)。
我已经考虑了一段时间,这是我最初的架构:
JobPostings
+ --- JobPostingID
+ ---用户名
+ ---公司
+ --- JOBTITLE
+ --- JobTypeID
+ --- JobLocationID
+ ---说明
+ --- HowToApply
+ --- CompanyURL
+ --- LogoURLJobLocations
+ --- JobLocationID
+ ---市
+ ---国家
+ --- ZipJobTypes
+ --- JobTypeID
+ --- JobTypeName
注意:UserID将链接到MembershipProvider生成的Member表。
现在,我非常关系数据库和SQL的新东西,所以我要轻视我。
命名怎么样?它应该只是JobPostings表下的“Description”,还是“JobDescription”(与该主表中的其他列相同)。它应该是“JobPostingID”还是“ID”?
一般提示也很受欢迎。
编辑:我们的项目修复了JobTypes,将有15个工作类别。我已经把这个社区wiki鼓励人们发帖。
答案 0 :(得分:1)
一些想法:
您可以包含一些特定于域的信息,例如工资范围和申请人详细信息,但我不知道您应该在多大程度上采用这种方式。
答案 1 :(得分:1)
对我来说很好,我建议还将Created,LastModified和Deleted列添加到用户可更新表中以及将来的校对。
确保在架构中明确定义主键和外键。
答案 2 :(得分:1)
Job Schema http://gfilter.net/junk/JobSchema.png
我将公司从公开发布中分离出来,因为这样可以使公司更容易维护。
我还添加了一个XREF表,可以存储公司和位置之间的关系。您可以为每个公司办公室设置一行,并且有一种非常简单的方法可以找到“该公司的替代工作地点”。
这应该是一个有趣的项目......祝你好运。
编辑:我会添加Created和LastModifiedBy(引用UserID)。这些是一般管家的好栏目。
答案 3 :(得分:0)
命名怎么样?它应该是公正的吗? JobPostings下的“描述” 表,或者它应该是JobDescription (与该主要中的其他列相同 表)。应该是“JobPostingID”还是 只是“身份证”?
就个人而言,我按照你的建议指定带有前缀的“ID”和“描述”等通用声音字段。它可以避免在以后编写查询时对id / description适用的内容产生混淆(并省去了别名它们的麻烦)。
答案 4 :(得分:0)
我建议将您要存储在JobLocations中的数据折回到主表中。可以为州和国家提供一张桌子,但我怀疑你想要一张包含每个城市/州/国家/地区的桌子,你真的没有从中获得任何东西。如果有人进入并编辑他们的位置会发生什么?您必须检查以确保没有其他工作列表指向该位置并进行编辑,否则创建一个新位置并指向该位置。
我通常的模式是地址和城市作为文本的记录和FK到状态表。