ORD用法求教

表:

  • Table A (id, name)

  • Table B (id, A_id, name)

  • Table C (id, A_id, B_name)

关系:

  • A.id --(1:n)--- B(A_id), C(A_id) 主外键关系

  • B.name ----(1:n)---- C(B_name) 无主外键关系

问题:

  1. 无主外键数据库关系,能用ORM建立关联吗?

  2. 在B与C建立关联的时候,因为他们必须同时属于同一个A_id,可以再hasMany中限定吗?

JellyBool

1.无主外键数据库关系的时候 ,能建立ORM关系。
2.没理解错的话,在使用name声明hasMany的时候是做不到限定同时属于同一个A_id

sunnirvana

谢谢,这么快的回复。
如果改下C的结构
比如 Table C (id, B.name_A.id),将B.name和A.id做成一个字段的话,hasMany可以做到吗?B中的两个字段关联到C的一个字段。

JellyBool

首先,个人觉得ORM关系可以理解为下面这个简单的关系:

你声明关系的双方应该有一个关联字段,比如这里的B如果是hasMany C的话,那么在C中应该有一个专门标记的字段,比如我们通常使用b_id来关联一样,如果你这样B.name_A.id做成一个字段,在关联的时候,通过B.name_A.id这个字段查询不到东西的吧

感觉不太明白你的需求 , 比如 B中的两个字段关联到C的一个字段 是什么意思?

sunnirvana

还是我的表设计有问题,应该做成这样:
表:

  • Table A (id, name)
  • Table B (id, A_id, name)
  • Table C (id, B.id)