我们使用一个基础实体,其中包含版本(NHibernate需要的日期时间)和GUID(作为键)等属性。
它还具有一个Id(int)字段,具有两个功能。首先,与旧应用程序密钥相关联(如果有)。其次,作为速记代码:例如,有时会基于这些创建文件,如果使用我们的GUID键,看起来会很丑陋和冗长。我的问题不是关于基本实体的利弊,而是将此Id升级到Int64?
这不会影响它在MS SQL Server数据库中的存储方式。它在缓存和内存中的成本会更高吗?这真的那么令人担忧吗?
我想听听除性能以外的其他缺点。还要考虑这些值可能随着时间向第三方通过Web服务公开。
另一种选择是处理较大整数的异常,并在派生实体中特别实现它们。缺点是这需要在代码中完成,当我们在生产中发现某些情况时该怎么办呢?当然会有输入验证来防止实际错误,但它可能会限制扩展数据。
它还具有一个Id(int)字段,具有两个功能。首先,与旧应用程序密钥相关联(如果有)。其次,作为速记代码:例如,有时会基于这些创建文件,如果使用我们的GUID键,看起来会很丑陋和冗长。我的问题不是关于基本实体的利弊,而是将此Id升级到Int64?
这不会影响它在MS SQL Server数据库中的存储方式。它在缓存和内存中的成本会更高吗?这真的那么令人担忧吗?
我想听听除性能以外的其他缺点。还要考虑这些值可能随着时间向第三方通过Web服务公开。
另一种选择是处理较大整数的异常,并在派生实体中特别实现它们。缺点是这需要在代码中完成,当我们在生产中发现某些情况时该怎么办呢?当然会有输入验证来防止实际错误,但它可能会限制扩展数据。