我对数据库关系的问题比Doctrine本身更多。 我有一个表“项目”和一个表“project_data”。我的表“project_data”始终链接到项目条目。 但是,在我的表“project”中,我可以有两个对project_data条目的引用:project_data_id和project_data_waiting_id。但是,这些引用可以为null,与project_data表中设置的“project_id”无关。
问题:
如何定义所有这些关系?我希望能够拥有没有任何project_data引用的项目条目。
如何使用Doctrine处理它?我对Doctrine和数据库设计都很陌生,而且我在桌子之间必须做的所有连接之间有点迷失。
我加入了一个图表,以便更好地了解我想要做的事情。
谢谢。
答案 0 :(得分:1)
在这种情况下,我会给你两个选项(假设project_data
总是只有一个project
):
<强>首先强>
project
- id
- project_data_id
- project_data_waiting_id
project_data
- id
- name
在这种情况下,您可以在项目类上定义两个一对一的关系。请查看http://docs.doctrine-project.org/en/latest/reference/association-mapping.html#one-to-one-bidirectional以获取有关如何处理此问题的更多信息。
第二:选项:
也可以创建多对多关系并为project_data提供状态。它看起来像这样:
project
- id
project_data
- id
- name
- project_id
- status_id
project_data_status
- id
- name
在这种情况下,project
与project_data
具有多对一关系,而project_data
与project_data_status
具有一对多的关系。此解决方案为您提供更多灵活性您可以根据需要向project_data
添加任意数量的project
个对象。
如何在doctrine2中定义关系可以在我在本文中提供的同一页面上找到。
希望这会指出你正确的方向。