我们再来一次,旧的论点仍然出现......
我们是否更好地将业务密钥作为主键,或者我们是否更愿意在业务键字段上具有唯一约束的代理ID(即SQL Server标识)?
请提供支持您的理论的示例或证明.
无论如何,我总是试图在表上有一个整数主键.但现在我在质疑这是否总是必要的.
假设我有一个产品表,每个产品都有一个全球唯一的SKU编号 - 这将是一个8-16个字符的字符串.为什么不把它变成PK呢?通常我会使这个字段成为一个唯一的索引,但后来有一个自动递增的int字段作为PK,因为我认为它会更快,更容易维护,并允许我做一些事情,比如轻松添加最后5条记录.
但就优化而言,假设我只是匹配全文字段而接下来正在进行文本匹配查询(例如像%%),你们可以想到任何不使用基于文本的主键的原因,很可能是类型VARCHAR()?
干杯,伊曼克
我需要添加一个对象的状态,并需要一个关于Rails方法的提示.在某个地方,我看到状态被添加到模型中,但已经丢失了.
按状态,我的意思是跟踪项目状态.喜欢{0: :ORDERED, 1: :CHANGED, 2: :SHIPPED, 3: :ARCHIVED}在商店订购.看起来它需要存储在DB,常量或符号中的id,我可以在代码中使用而不是整数id,以及一个或两个用于UI的人类可读消息