Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 数据库表重构_Sql_Sql Server_Database_Nhibernate - Fatal编程技术网

Sql 数据库表重构

Sql 数据库表重构,sql,sql-server,database,nhibernate,Sql,Sql Server,Database,Nhibernate,嗨,我正在使用ms2005作为一个简单的日历系统。 我们有三个“遗留”表:组、单位和员工 我需要给表中的每条记录一个唯一的标识符(跨越所有3个表) 最好的方法是什么?我正在使用NHibernate,我想知道它是否能帮我 无论如何,任何朝着正确方向的点头都是值得赞赏的。通常的做法是使用带有标识(1,1)的int在每个表上创建一个代理主键 如果需要跨系统的唯一值,请使用UNIQUEIDENTIFIER列(GUID)。您是说同一标识符不应出现在多个表中吗?这将是一个可疑的断言,表明需要进行更多的讨论

嗨,我正在使用ms2005作为一个简单的日历系统。 我们有三个“遗留”表:组、单位和员工

我需要给表中的每条记录一个唯一的标识符(跨越所有3个表)

最好的方法是什么?我正在使用NHibernate,我想知道它是否能帮我


无论如何,任何朝着正确方向的点头都是值得赞赏的。

通常的做法是使用带有标识(1,1)的int在每个表上创建一个代理主键


如果需要跨系统的唯一值,请使用UNIQUEIDENTIFIER列(GUID)。

您是说同一标识符不应出现在多个表中吗?这将是一个可疑的断言,表明需要进行更多的讨论


从重构的角度来看,这将是一种“异味”;但请参见我下面的澄清请求。使用标识栏;只有当您了解UNIQUEIDENTIFIER是什么、何时使用以及为什么使用时,才可以使用它。考虑到你的问题,这不太可能。这将有助于对这个问题进行更多的解释-所有3个表的示例布局(仅包含重要列),以及更多解释“跨越所有3个表”的含义。