公司的员工管理系统。
该项目是使用用于应用程序开发的ASP.NET和SQL Server作为存储数据库开发的。在有可能制定CRUD标准的四种操作的地方进行了员工(Person + Cargo)的注册。阅读,创建,编辑和删除。此外,还实施了薪资重新计算选项,数据库再次使人与办公室之间的关系,填充了测试说明中规定的人_萨利群落。
在官员/备份/中,我将使用SQL Server备份文件,该文件与已输入的所有过程和已经输入的数据一起使用。因此,您只需要进行银行还原即可。
注意:完成还原后,您需要更改员工file.aspx.cs中的员工类中的连接字符串。通过计算机的连接字符串更改。
配置数据库后,打开您选择的某些代码编辑器(我使用Visual Studio)并运行应用程序的解决方案。
为了更容易查看应用程序中使用的过程,我将其创建文件放在员工/SQLS/中。
在开发过程中,我发现了有关拟议建筑的一些奇怪事情。主要与数据库有关。
在测试说明中说的是创建一个名为pessoa_salario的表,该表将使人表与位置保持联系。但是,该表的存在并不是必需的。为了创建中间表,只有在分析的两个表之间有许多人之间存在许多关系时,才有必要。人和办公室之间并非如此。毕竟,一个人一次只能处于一个位置,因此有一个名为position_id的字段。由此,位置表的独特方式已经存在,因此已经可以访问该人的职位和工资,而无需创建表来执行此操作。
在测试中描述您的方式,银行中存在重复的问题。除了在架构上是错误的架构外,它在某个时候可能会在这些数据中产生不一致之处,在应用程序中还需要对此进行“校正”,这是创建工资重新计算按钮的。毕竟,例如,如果将来实习生的薪水价值发生了变化,则位置表将具有更新的价值,但是Sanal Sales表仍将具有旧值(数据不一致问题),并且有必要在员工屏幕上手动进行并触发工资重新计算行动。如果没有人的桌子,这不需要做,因为除了在一个地方只有这些数据,防止矛盾之处,咨询还可以正确地采用该值。在修改工资金额之前和之后。
这样做的证明是分析两个架构产生的咨询。
这是返回人,货物和人的所有数据的咨询,由建筑建议使用:
SELECT p . ID , p . Nome as Pessoa, Cidade, Email, CEP, Endereco, Pais, Usuario, Telefone, Data_Nascimento, c . Nome as Cargo, ps . Salario FROM Pessoa as p
INNER JOIN Pessoa_Salario as ps on p . ID = ps . Pessoa_ID
INNER JOIN Cargo as c on p . Cargo_ID = c . ID这具有与上述咨询相同的功能,但仅涉及人员和办公室,并以更简单,更优化的方式返回完全相同的数据:
SELECT p . ID , p . Nome as Pessoa, Cidade, Email, CEP, Endereco, Pais, Usuario, Telefone, Data_Nascimento, c . Nome as Cargo, c . Salario FROM Pessoa as p
INNER JOIN Cargo as c on p . Cargo_ID = c . ID注意:我的解决方案建议是使用拟议的体系结构开发的。此评论只是为了展示我发现它最有趣和通过建筑优化的方式。