SQL编程范例 - 客户端与服务器

时间:2012-04-18 15:15:10

标签: php sql sql-server tsql paradigms

我正在研究MS SQL数据库。我们处于早期开发阶段,我正在使用PHP,而我的同事正在使用ASP.NET。最后,我们可能会结合我们的努力并坚持下去。出于这个原因,我认为尽可能在数据库中的存储过程中进行尽可能多的编程是明智的。

所以我正在处理这个位,用户上传文本文件,数据重新排列,并插入服务器上的表中。现在我基本上面临三个选择:

  1. 在PHP中进行所有重新排列并构建查询字符串并执行它。
  2. 将数据按原样插入到另一个表中,然后调用存储过程重新排列它并将其插入到更大的目标表中。
  3. 只需将数据作为参数传递给存储过程,该存储过程一次完成所有操作和连接。
  4. 据我所知,到目前为止,我知道选项1可能不太好。真的我的问题是,选择3在另一个方向上太远了吗?我觉得这会更困难,但它会是最便携的,我不会在服务器上有那些尚未操作的数据。或者选择2是要走的路,因为对于那些在我尝试分析我的代码正在做什么之后的人来说,这可能是最有意义的吗?

2 个答案:

答案 0 :(得分:1)

我不喜欢让我的存储过程执行某种逻辑来处理读取文件和清理。我会将进程分成不同的逻辑层来处理这个问题。我想在我的业务逻辑级别执行文件操作,并向存储过程(我的数据访问层)提供干净的数据,以便它可以将数据保存到相关的表。这样,如果要保存来自应用程序的不同部分的数据/尝试保存已清理数据的其他应用程序,则可以使用相同的数据访问方法。我认为这是更具可扩展性的解决方案。

所以我建议你在PHP文件中进行文件清理操作,然后将数据传递给存储过程。确保您没有传递要保存在查询字符串中的数据并直接从那里读取保存。因为那时你将成为SQL Injection的受害者。

答案 1 :(得分:0)

我建议在两个Web部件之间添加一些中间层(可能是SOAP服务,因此PHP和ASP.NET都可以轻松使用它),这将完成所有处理和数据操作。