Sql 数据库表重构
嗨,我正在使用ms2005作为一个简单的日历系统。 我们有三个“遗留”表:组、单位和员工 我需要给表中的每条记录一个唯一的标识符(跨越所有3个表) 最好的方法是什么?我正在使用NHibernate,我想知道它是否能帮我Sql 数据库表重构,sql,sql-server,database,nhibernate,Sql,Sql Server,Database,Nhibernate,嗨,我正在使用ms2005作为一个简单的日历系统。 我们有三个“遗留”表:组、单位和员工 我需要给表中的每条记录一个唯一的标识符(跨越所有3个表) 最好的方法是什么?我正在使用NHibernate,我想知道它是否能帮我 无论如何,任何朝着正确方向的点头都是值得赞赏的。通常的做法是使用带有标识(1,1)的int在每个表上创建一个代理主键 如果需要跨系统的唯一值,请使用UNIQUEIDENTIFIER列(GUID)。您是说同一标识符不应出现在多个表中吗?这将是一个可疑的断言,表明需要进行更多的讨论
无论如何,任何朝着正确方向的点头都是值得赞赏的。通常的做法是使用带有标识(1,1)的int在每个表上创建一个代理主键
如果需要跨系统的唯一值,请使用UNIQUEIDENTIFIER列(GUID)。您是说同一标识符不应出现在多个表中吗?这将是一个可疑的断言,表明需要进行更多的讨论
从重构的角度来看,这将是一种“异味”;但请参见我下面的澄清请求。使用标识栏;只有当您了解UNIQUEIDENTIFIER是什么、何时使用以及为什么使用时,才可以使用它。考虑到你的问题,这不太可能。这将有助于对这个问题进行更多的解释-所有3个表的示例布局(仅包含重要列),以及更多解释“跨越所有3个表”的含义。