我将开始一个新的PHP项目,Doctrine ORM将用于Symfony Framework。
我正在考虑目前的实体和关系结构。它可能听起来很荒谬,与ORM逻辑相矛盾?
我之前没有使用过Symfony和Doctrine。
会有很多实体,每个实体都有很多关系。
对于前。 假设我有3个实体。
- 用户
- 后
-Comment
项目业主要求我提供如下结构。
Id Type CreatedAt Status title
1 Post Y-m-d H:i:s 1 Post 1...
2 Comment Y-m-d H:i:s 0 comment 1...
3 Comment Y-m-d H:i:s 1 comment 2...
4 User Y-m-d H:i:s 1 User X...
... ... ... ... ...
from_log_id fromContentType toContentType to_log_id
2 Comment Post 1
3 Comment Post 1
1 Post User 4
物件
User
-id
-name
-log_id (fk)
...
Comment
-id
-connet
-log_id (fk)
...
Post
-id
-content
-log_id (fk)
...
- 每个对象都将在实体表上有一个日志数据。
- 原因是,我们应该能够轻松地通过表格获取对象的所有关系。
如何使用Doctrine来完成类似这样的场景?
谢谢。
答案 0 :(得分:0)
首先,您应该将PHP对象命名为复数,而不是单数,因为它们代表组中的单个实体。然后,您添加到每个实体的entityId
字段确实没有意义,因为您已经有一个id
字段,表示该字段。
对于我所看到的,您需要定义实体之间的关系。您可以使用OneToOne
,OneToMany
,ManyToOne
和ManyToMany
。使用哪一个取决于应用程序规范,但是从您的代码派生的示例:
User
- id
- name
- comments (OneToMany -> Comment)
- posts (OneToMany -> Post)
Comment
- id
- connet
- user (ManyToOne -> User)
Post
- id
- content
- user (ManyToOne -> User)
等等。我根本不了解你的entityId
,你能说得更具体吗?