Php 最后一年项目工作门户

Php 最后一年项目工作门户,php,javascript,asp.net,Php,Javascript,Asp.net,目前我正在用ASP 2.0和SQL Server 2005开发一个求职门户,它涉及求职者注册、搜索简历、申请职位公告、雇主注册、创建职位公告、搜索求职者等 求职者可以上传大小不超过500Kb的word文档,该文档以varbinary格式存储在表中 现在,我在单独的数据库中拥有成员/角色。作业门户表位于单独的数据库中。我被告知要拆分这些表,以便求职者的表在一个数据库中显示,雇主的表在另一个数据库中显示,这样可以加快工作效率 我有几个表格可以连接求职者或雇主的店铺id,如求职者申请的职位公告、求职者

目前我正在用ASP 2.0和SQL Server 2005开发一个求职门户,它涉及求职者注册、搜索简历、申请职位公告、雇主注册、创建职位公告、搜索求职者等

求职者可以上传大小不超过500Kb的word文档,该文档以varbinary格式存储在表中

现在,我在单独的数据库中拥有成员/角色。作业门户表位于单独的数据库中。我被告知要拆分这些表,以便求职者的表在一个数据库中显示,雇主的表在另一个数据库中显示,这样可以加快工作效率

我有几个表格可以连接求职者或雇主的店铺id,如求职者申请的职位公告、求职者保存的职位公告、雇主的职位公告、职位公告(申请者)警报等

有谁能告诉我如何创建一个性能优异的数据库设计(一个或多个)。现在,我有一个数据库,用于与作业门户相关的表(不包括成员资格)。下面给出了关键字段的映射,包括为文本索引启用的字段

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

求职者身份(PK)

(工作请参见Kerresumetable-门店简历详细信息)

JobSeekerResumeId(主键)

求职者ID(FK)

职务(启用文本索引)

(JobSeekerDocTable-门店简历详细信息)

JobSeekerDocId(主键)

求职者ID(FK)

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

求职信(正文)

(JobSeekerPostingTable-存储求职者保存的职位公告)

JobSeekerPostingId(主键)

求职者ID(FK)

JobPostingId(FK)

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

求职者申请(PK)

求职者ID(FK)

JobPostingId(FK)

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

公司ID(PK)

(JobPostingTable-存储创建的职务公告的信息 (由雇主提供)

JobPostingId(主键)

公司ID(FK)

职务(启用文本索引)

作业描述(启用的文本索引)

(JobPostingConTable-存储职务公告的信息 位置详情)

作业发布ID(主键)

JobPostingId(FK)

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

压缩已保存(主键)

公司ID(FK)

求职者ID(FK)

最终会添加更多的表。有谁能告诉我如何提高绩效(特别是搜索雇主简历的搜索引擎和搜索求职者招聘信息的搜索引擎)。我希望我已经清楚地提到了所有事情

谢谢


经过快速扫描,您的数据库结构看起来很好。你说在不同的数据库中存储更快?这样做不会有或几乎没有性能差异。如果不允许添加FK引用,还可能导致数据库结构降级

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

输出缓存-您的某些页面多久更改一次?是否每次请求时都需要呈现它们? 业务逻辑缓存 批处理(如果一次添加了大量内容) 正确分页

可能有用的工具

SQL分析器

(如果您拥有来自SQL的全套管理工具,您可能会拥有此功能)-这将允许您查看每个页面加载请求的SQL量。作为最佳实践,该数字应尽可能小。平均1或更少就太棒了


迷你档案器(http://www.hanselman.com/blog/NuGetPackageOfTheWeek9ASPNETMiniProfilerFromStackExchangeRocksYourWorld.aspx)看起来很酷。

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

关于数据库性能,还有一件事,您可以将索引和启动模式应用于数据库设计。您还可以为数据库定义第三个NF,使其成为良好的NF

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


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

按照建议的行进行拆分将提高性能的概念是如何形成的?是否确实有分析表明这才是真正的瓶颈所在?过早的优化失败了,YAGNI,很糟糕,这有点过早的味道。我想他们想把它存储在数据库中,用于全文索引?可以使用lucene或其他更有效的方法,但现在的问题超出了主角:)