在使用Linq to SQL时,对多对多关系表使用多列(复合)主键是否有益?
还是应该仅将身份列添加为非群集主键并适当地索引FK列?
不是LINQ问题。如果您的架构需要它们,请使用它们。如果您不这样做,请不要。无论哪种方式,LINQ都能很好地处理您的架构。
LINQ to
SQL不能很好处理的一个领域是用于连接多对多关系的多列/键映射表,但是我不会说这严格属于您的问题解决的范畴。您仍然可以在LINQ内的映射表上执行CRUD操作,但是LINQ无法遍历多对多映射表所呈现的关系。(LINQ可与一对一和一对多表配合使用。)
我不能说任何有关实体框架的问题,但是如果EF遇到多列/多键表的任何问题,我将感到非常惊讶。
问题内容: 在Java的JPA中(通过EmbeddedId或IdClass注释)似乎仅对复合数据库键提供第二类支持。当我阅读复合键时,无论使用哪种语言,人们都会碰到它们,因为这是一件坏事。但是我不明白为什么。如今,组合键是否仍然可以使用?如果没有,为什么不呢? 我发现一个同意我的人:http : //weblogs.sqlteam.com/jeffs/archive/2007/08/23/comp
问题内容: 如何使用复合主键作为外键?看来我的尝试无效。 问题答案: 该行: 是错的。您不能那样使用,这只是父表中PK约束的名称。要将复合主键用作外键,您必须向子表中添加相同数量(组成PK)的相同数据类型的列,然后在定义中使用这些列的组合:
如何将复合主键用作外键?看来我的尝试没有成功。
问题内容: 假设我有一堂课,看起来像这样: 我可以使用hibernate会话对此类进行获取或加载: 但是,假设我有一个包含多列的类作为主键: 可以在此类中使用get或load吗? 问题答案: 尝试使用和或 然后使用 看一下这个问题,对此进行了广泛的解释。基本上,hibernate具有复合键的机制。
问题内容: 我想看一个例子: 什么时候合适 当这不合适时 是否有一段时间数据库的选择会与上述示例有所不同? 问题答案: 这似乎是关于 代理 键的问题, 代理 键始终是自动递增的数字或GUID,因此是单列,而 自然 键则通常需要多个信息才能真正唯一。如果您能够拥有仅一列的自然键,那么无论如何,这一点显然是没有意义的。 有些人会坚持只使用其中之一。花足够的时间使用生产数据库,您将了解到没有任何上下文无
问题内容: 我在玩redis,想重新创建我在mysql中拥有的表。这是我用来创建它的mysql命令: 我的数据基本上是两列,每一列都有彼此唯一的数字,例如: 当我在redis上玩耍并尝试创建上述数据时,“ 3”键只会不断被我输入的最后一个值取代。有没有办法使该版本在Redis中工作? 问题答案: 使用Redis更好地表示您的数据的模型是使用value1对象的简单集合(每个key1对象一个)。按照示