【发布时间】:2010-10-08 19:37:09
【问题描述】:
这需要一些背景知识。我正在创建一个 Web 应用程序(带有 SQL Server 后端的 ASP.NET/VB.NET),它将接受申请以接收资金,并且此表单包含三个人的联系信息字段。因为所有三个人的信息(姓名、电子邮件、电话)都相同,所以我选择将联系信息存储在与应用程序分开的表中。在应用程序表中,这三个联系人中的每一个都有一个 ID 字段,指向联系人表中的一个联系人。
但是,这在我的 CRUD 工作中提出了一个有趣的问题/问题。我能想到的在一个 SQL 事务中为应用程序和所有三个联系人创建、更新和检索信息的唯一方法需要非常复杂的存储过程。换句话说,(对我来说)通过多个事务检索这些信息会简单得多。然而,由于这些信息从来都不是独立需要的,所以我总是会进行多次交易来获取一个应用程序的信息。
所以我的问题:
- 这种设计是不是有点矫枉过正?每个应用程序的联系人不会超过三个,并且必须恰好三个。将此信息删除到单独的表格中是否过于复杂?
- 与编写复杂的存储过程并且只需要一个事务相比,执行多个 SQL 事务的实际成本是多少?
- 一般而言,使用 ADO.NET 对 Web 应用程序执行 SQL 事务的成本是多少?
感谢您接受冗长的解释。
*编辑*
在阅读了您的一些回复后,看来我使用“交易”一词是错误的。我实际上好奇的是跨单个连接执行多个查询而不是执行一个查询的成本。很抱歉造成误会。
【问题讨论】:
-
这不是,我再说一遍不是“复杂的存储过程”。如果您有多个作为工作单元的数据库更改,则必须使用事务,“成本”是只进行了一些更改而没有进行了一些更改。
标签: sql sql-server ado.net