0

我有一个关于数据库关系的问题,而不是 Doctrine 本身。我有一个表“项目”和一个表“project_data”。我的表“project_data”总是链接到一个项目条目。但是,在我的表“项目”中,我可以有两个对 project_data 条目的引用:project_data_id 和 project_data_waiting_id。但是,这些引用可以为空,并且与 project_data 表中设置的“project_id”无关。

问题 :

  • 如何定义所有这些关系?我希望能够在没有任何 project_data 引用的情况下拥有项目条目。

  • 如何用 Doctrine 处理它?我对 Doctrine 和数据库设计有点陌生,在我必须在我的表之间进行的所有连接之间我有点迷茫。

我加入你的图表,以便更好地了解我想要做什么。

谢谢你。

EER图

4

1 回答 1

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

可以在我在这篇文章中提供的同一页面上找到如何在学说 2 中定义关系。

希望这将为您指明正确的方向。

于 2013-09-18T11:31:59.930 回答