[英]Combining fields for SQL table primary key?
可以使用两个字段(例如ZIPCode和Route)创建主键吗?
public class RouteInfo
{
[Key]
public int ZIPCode { get; set; }
public string Route { get; set; }
public int BusinessCount { get; set; }
public int ApartmentCount { get; set; }
public int POBoxCount { get; set; }
public int ResidentialCount { get; set; }
}
邮递区号:路线有1:1的关系。 因此,当客户输入邮政编码时,他会获取该邮政编码中的路由列表,例如:
B001
B002
B003
...
C001
C002
C005
可以将它们与邮政编码组合以生成主键吗? 例如:
21001B001
21001B002
21001B003
...
21001C001
21001C002
21001C005
您可以将复合主键与邮政编码和路由用作单独的值,但是将它们存储在一起时会比较棘手。 我对您需要使用的有效邮政编码和路由知之甚少,但是对于相同的结果代码,您可能(也可能不会)获得2(或更多)不同的邮政编码和路由组合
例如:
21001
,路线B001
。 2100
与路线1B001
。 我会尝试将它们分开存储,甚至最好使用替代(自动递增)数字值作为主键。 这样可以解决将来的问题,例如,当路线更改其代码时会发生什么? 突然,路线B001已更新,现在是G023。 您将需要更新它的主键值以及与此相关的所有外键。 邮政编码也会发生同样的情况。 邮编也可能在不同国家(例如以色列和美国)重复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.