Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一对多,引用键也包含字符串_Php_Orm_Doctrine_Symfony - Fatal编程技术网

Php 一对多,引用键也包含字符串

Php 一对多,引用键也包含字符串,php,orm,doctrine,symfony,Php,Orm,Doctrine,Symfony,我有一个名为books的实体和另一个名为users的实体。 每本书可以有许多作者(用户)。 因此,当我添加一本书时,我会选择在网站上注册的用户。 但是如果这本书的作者在这个网站上没有账户,我想手工输入他的名字 +----+---------+-----------+--+ | id | book_id | author_id | | +----+---------+-----------+--+ | 1 | 1 | 1 | | | 2 | 1 |

我有一个名为books的实体和另一个名为users的实体。 每本书可以有许多作者(用户)。 因此,当我添加一本书时,我会选择在网站上注册的用户。 但是如果这本书的作者在这个网站上没有账户,我想手工输入他的名字

+----+---------+-----------+--+
| id | book_id | author_id |  |
 +----+---------+-----------+--+
|  1 |       1 | 1         |  |
|  2 |       1 | Mr.Paul   |  |
+----+---------+-----------+--+
查看author_id如何既是字符串又是用户的引用键? 我可以用条令来做这件事吗,否则我将不得不自己管理插入

编辑:我不知道正确的标题应该是什么
Edit2:一个可能的解决方案是创建另一个表,其中只包含在网站上没有帐户的作者。

我建议采用以下方法

您有一个表
books
一个表
accounts
和以下内容:

作家与书籍

+----+---------+-----------+--+
| id | book_id | author_id |  |
+----+---------+-----------+--+
|  1 |       1 | 1         |  |
|  2 |       1 | 2         |  |
+----+---------+-----------+--+
作者

 +----+---------+------------+--+
| id | name     | account_id |  |
+----+---------+------------+--+
|  1 | Mr. Paul | 1          |  |
|  2 | Simon    | (empty)    |  |
+----+---------+-------------+--+

帐户id可以为空

我建议采用以下方法

您有一个表
books
一个表
accounts
和以下内容:

作家与书籍

+----+---------+-----------+--+
| id | book_id | author_id |  |
+----+---------+-----------+--+
|  1 |       1 | 1         |  |
|  2 |       1 | 2         |  |
+----+---------+-----------+--+
作者

 +----+---------+------------+--+
| id | name     | account_id |  |
+----+---------+------------+--+
|  1 | Mr. Paul | 1          |  |
|  2 | Simon    | (empty)    |  |
+----+---------+-------------+--+

帐户id可以是空的

在我的选项中,这不是一个很好的解决方案,我认为如果你不只是输入一个名字会更好,你应该创建一个新的作者,然后将这个新的作者id放入数据库表中。我不是一个信条专家,但我认为这是不可能的,因为这是一个非常糟糕的做法,或者可能创建另一个表,其中只包含在网站上没有帐户的作者?您当前的作者表是什么样子的?我想你应该有这个表格
authors\u books
books
authors
authors
~ accounts,这样一个作者就可以有一个账户了,或者我不喜欢这样,但是在authors表格中,我把我的作者放在没有账号的位置,或者我把有账号的和没有账号的都放在一起,在作者表中,你有一个列账号,而没有账号的,这一行是空的,在我的选项中,这不是一个愚蠢的解决方案,我想如果你不只是输入一个名字会更好,您应该创建一个新的作者,然后将这个新的作者id放入数据库表中。我不是一个信条专家,但我认为这是不可能的,因为这是一个非常糟糕的做法,或者可能创建另一个表,其中只包含在网站上没有帐户的作者?您当前的作者表是什么样子的?我想你应该有这个表格
authors\u books
books
authors
authors
~ accounts,这样一个作者就可以有一个账户了,或者我不喜欢这样,但是在authors表格中,我把我的作者放在没有帐户的位置,或者我把有帐户的作者和没有帐户的作者都放在一起,在作者表中,你有一个列帐户id,而没有帐户的作者这一行是空的