![]() |
1
2
在第一个场景中,用户历史记录只是一个多对多关系的映射表,没有适当的对象。现在,userhistory表/读取类是一个单独的实体,因此它需要某种类型的标识符。最简单的方法是将主键readid(或userhistoryid)添加到userhistory表中。 您不必添加单独的键,可以在userid和bookid上使用复合键——但是用户可以多次阅读一本书吗?假设是这样,那么您还需要将at列添加到复合键中,使其唯一。这会变得很难看,在处理收藏品时会导致其他问题,因此不值得这样做。 用户历史到书籍的关系实际上是多对一的关系,而不是一对一的关系。许多不同的用户可以阅读同一本书(也许同一个用户可以多次阅读一本书)。将多对一视为对象引用。 |
![]() |
2
1
问题1:不,不需要ID,只需将其映射为组件(在本例中是复合元素,它在列表中的位置)。 问题2:用户历史记录->书籍不是一对一的,随着时间的推移,许多用户可能会阅读同一本书,因此它是多对一的,应该映射为多对一。 可能不完整的映射如下:
注意:忘记
|
![]() |
rborum · 使用IF/CASE语句排序为列(AS) 7 年前 |
![]() |
SouthBeach · 对象框到任意列表 7 年前 |
![]() |
slickness · 一对多保存,无需创建 7 年前 |
![]() |
PaFi · 一对多关系核心数据获取数据 7 年前 |
![]() |
stilllife · Symfony 3多通关系空相关集合 7 年前 |
![]() |
Joe · EF6一对多Fluent映射 7 年前 |