最后一年项目职位门户

时间:2011-12-02 05:59:12

标签: php javascript asp.net

目前我正在ASP 2.0开发一个职位门户,SQL Server 2005涉及求职者注册,简历搜索,申请职位发布,雇主登记,创建职位发布,寻找求职者等。

允许求职者上传大小高达500Kb的word文档,该文档作为varbinary存储在Table中。

现在我在单独的数据库中有MemberShip / Roles。作业门户表位于单独的数据库中。我被告知拆分表,以便JobSeeker表是一个数据库,另一个数据库是雇主,这样它们可以加快性能。

我有几个表桥接(即存储求职者或雇主的身份证),例如应用的职位发布,保存过账的求职者,雇主的职位发布,职位发布(应用的)警报等。

任何人都可以给我如何创建一个具有出色表现的良好数据库设计(一个或多个)。现在我有一个与Job Portal相关的数据库,不包括成员资格。下面给出了关键字段的映射,包括为文本索引启用的字段。

  

(JobSeekerTable - 存储个人详细信息)

     

JobSeekerId(PK)

     

...............

     

(JobSeekerResumeTable - 存储简历详情)

     

JobSeekerResumeId(PK)

     

JobSeekerId(FK)

     

职位(启用文本索引)

     

........

     

(JobSeekerDocTable - 存储简历详情)

     

JobSeekerDocId(PK)

     

JobSeekerId(FK)

     

恢复(作为varbinary)(启用文本索引)

     

求职信(文字)

     

........

     

(JobSeekerPostingTable - 存储求职者保存的职位发布)

     

JobSeekerPostingId(PK)

     

JobSeekerId(FK)

     

JobPostingId(FK)

     

...

     

(JobSeekerAppliedTable - 存储作业应用的作业   导引头)

     

JobSeekerAppliedId(PK)

     

JobSeekerId(FK)

     

JobPostingId(FK)

     

.....

     

(公司表 - 雇主详细信息)

     

CompanyId(PK)

     

.....

     

(JobPostingTable - 存储创建的职位发布信息   雇主)

     

JobPostingId(PK)

     

CompanyId(FK)

     

职位(启用文本索引)

     

作业说明(启用文本索引)

     

.....

     

(JobPostingConTable - 存储作业发布的信息   位置详情)

     

JobPostingConId(PK)

     

JobPostingId(FK)

     

.....

     

(CompResumeSaved - 雇主保存的求职者详细信息)

     

CompResumeSaved(PK)

     

CompanyId(FK)

     

JobSeekerId(FK)

     

.....

最终会添加更多表格。任何人都可以告诉我如何加快表现(特别是雇主寻找简历的搜索引擎和寻找职位发布的求职者。)我希望我已经清楚地提到了一切。

谢谢,

Aftab Ur Rehman

2 个答案:

答案 0 :(得分:1)

从快速扫描中,您的数据库结构看起来很好。你说在diff数据库中存储更快吗?这样做没有或几乎没有性能差异。如果不允许添加FK引用,也会降低数据库结构的风险。

无论如何,我认为你要做的最好的事情是按照正常情况创建项目,然后 - 在项目结束时 - 开始进行一些性能比较。您可能会发现该项目按预期工作。如果没有,那么你应该开始调查以下一些方法来加快速度:

OutputCaching - 您的某些网页多久更改一次?他们每次被要求时都需要渲染吗? 业务逻辑缓存 批处理(如果您一次添加大量的东西) 正确的分页

可能有用的工具

SQL事件探查器

(如果您拥有SQL的全套管理工具,则可以使用此选项) - 这将允许您查看每次页面加载请求的SQL数量。作为最佳实践,此数字应尽可能小。平均为1或更少会很棒。

Mini Profiler (http://www.hanselman.com/blog/NuGetPackageOfTheWeek9ASPNETMiniProfilerFromStackExchangeRocksYourWorld.aspx)看起来很酷。

答案 1 :(得分:1)

对于数据库良好的持久性,无需制作不同的数据库。您可以在单个数据库中创建所有表。很容易为你的未来维护。

对于数据库性能,还可以应用索引并启动Schema进行数据库设计。你也可以为你的数据库定义第三个NF,以便做好。

第二件事,不要在数据库中保存CV,只需在数据库中保存参考服务器路径和文件名。请将服务器端的CV保存为文件(使用文件系统)。这是最好的方法。您可以加载显示,您可以删除大小标准,如“naukri.com”和其他着名的工作门户网站。

如果您需要任何类型的帮助来创建此应用程序,请通过此帐户与我联系。我将为您的项目提供指导,直到您的项目将完成...