2

我正在制作一个 Java gui 和 web 应用程序,它将使用相同的 mysql 数据库。

这是一个 DTh 管理系统,所有信息都将根据输入动态存储和检索。

我相信视图本质上是静态的,因此毫无用处,因为我的所有查询都将具有不同的 where 条件(用户 ID)。

我需要使用触发器吗?我的意思是我可以编写 java 代码来执行多个语句,而不是使用内置触发器(例如,插入客户姓名和家庭成员姓名都会有一个家庭负责人的副本)。是否有性能影响?我在某种程度上错了吗?

同样的事情是存储过程的用途是什么?我不能在java中使用方法来做所有事情吗?

所以,我问是否可以将所有计算密集型的东西转移到 java 和 web 脚本而不是 sql。如果是,这是否意味着我只需要创建数据库的后端结构(即所有不同的表和 FK、PK)并在不使用 mysql 工作台上的任何 sql 东西的情况下休息?

谢谢你的帮忙。

4

2 回答 2

1

(一如既往)有一个正确答案:视情况而定。

如果您只想显示和查询一些数据,您可能不需要触发器或存储过程。

视图是另一回事:如果您想要连接表或类似的静态视图,它们会非常有用。如果你不需要这个,就不要使用它。

钥匙真的很重要。它们使您的数据对错误输入具有鲁棒性。

你应该使用的是PrepearedStatement而不是Statement. 如果您只使用s,那么在SQL-InjectionPreparedStatement问题上,您(几乎?)是安全的。

于 2013-01-31T08:37:12.380 回答
1

我们使用视图是因为它比选择查询更快,并且仅显示数据(而不是编辑更新)它更快且更可取。

触发器在数据库端触发,因此它更快,因为它只在一次执行中执行 2 个或更多查询。

存储过程也是如此,因为我们可以在单个数据库连接中执行多个查询。如果我们执行不同的查询,那么每次执行数据库连接(查找数据库服务器、验证、查找数据库等)所花费的时间会更多。

于 2013-01-31T09:32:23.010 回答