gpt4 book ai didi

database - 召集所有数据库/ORM/数据访问层专家

转载 作者:搜寻专家 更新时间:2023-10-30 23:24:36 24 4
gpt4 key购买 nike

我有一个小数据库挑战要问你。希望您能提供帮助。

问题:

我需要一个允许我“处理”主键/复合键更改的解决方案。经过“处理”,我的意思是我应该仍然能够在很少或没有代码更改的情况下执行 CRUD 操作。从应用程序/数据库的角度来看,它需要有最少的麻烦。

我被允许在阳光下使用几乎任何东西,除了以下 2 个限制:1)需要使用SQL Server2)不允许使用动态SQL查询

我最初的头脑 Storm /可能的解决方案?

a) 它能以某种方式在存储过程级别解决吗?

b) 可以通过适配器模式/反射/数据库模式询问巧妙地使用 DTO 来解决这个问题吗?

c) 某种奇特的 LINQ/反射技巧?

d) NHibernate 能以某种方式解决这个问题吗?

我有一点时间压力(我必须在本周末之前想出解决方案),因此我们将不胜感激。所以,就在这里。如果你认为你可能有一个解决方案但不想使用任何脑细胞,这里有一个激励(希望它会起作用)......如果你的解决方案为我解决了问题并且我最终使用它,你将获得完全许可您选择的任何 Microsoft 软件的商业(非盗版:P)版本,例如。 Windows 7、SQL Server、Office 2007 等。如果奖励不起作用,我希望你能帮助我吗? :-) 这里有点绝望:-)

非常感谢。

最佳答案

假设您有一 strip 有生成的主键的记录 - 这只是该记录的一个不可变标识符。最终用户永远不需要看到它,但它允许您可靠地识别记录并因此指定对其的更改。

其他列或列组合是用户认为的主键,但实际上并不是“主键”,它们只是(可能是唯一的)可更改的数据片段。

所以 GivenName/FamilyName - 可能是索引的好字段,但显然是可变的。

社会安全号码(或某些类似的唯一号码)- 听起来像是一个很棒的主键。嗯,但假设以某种方式错误的进入系统,你如何修复它。如果它只是一个具有唯一索引的列,问题出在哪里?

真正的主键是我们用来连接其他表的东西。

用户——用户的订单

由系统生成的主键链接,而不是他可变的类似 SSN 的东西。

关于database - 召集所有数据库/ORM/数据访问层专家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com