我们的系统在多台服务器上运行。我们系统中的所有表都使用GUID
作为Primary Key
和Foreign Key
字段。然而,这是我们的旧系统,它经历了全新的重写。
在旧系统中使用GUID
的动机是迁移数据。将项目从一个服务器迁移到另一个服务器是完全合理的。因此,在迁移数据时,使用int
作为ID会有问题。
现在,由于迁移因素,我们希望将新系统GUID
用作ID。新系统将使用DDD和MVC 4编写。此外,我们使用KendoUI进行UI控制。
根据事物的外观,KendoUI不支持GUID
的{{1}}个网格。使用它们时,该列为空白。
有人提到我的设计错误,不应使用Foreign Key
作为ID。在GUID
中使用GUID
是否真的错了?在View Model
中的GUID
和Domain Model
使用int
非常困难。
在迁移情况下,Ids在多个服务器中很重要的系统中使用的数据类型是什么?
或者,数据迁移是一个单独的问题,我应该使用API和域服务来迁移数据,在这种情况下使用View Model
作为id是完全合理的。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
您想要将GUID用作ID是正确的。如果您的UI工具不支持GUID ID,请使用其他工具。我会说使用特定于供应商的UI工具无论如何都违背了ASP.NET MVC的精神。您应该能够找到满足您需求的免费开源软件。
在任何情况下,您都不应该为了UI控件而将GUID ID映射到int ID。这只会导致巨大的痛苦。