2017-02-05 11 views
0

私は本ともう1人のユーザーというエンティティを持っています。 各書籍には多くの著者(ユーザー)がいる場合があります。 私は本を追加するときに、サイトに登録されているユーザーを選択します。 しかし、本の作者がサイト上にアカウントを持っていない場合は、自分の名前を手で入力したいと考えています。Doctrine orm文字列を含む参照キーを持つ1対多

+----+---------+-----------+--+ 
| id | book_id | author_id | | 
+----+---------+-----------+--+ 
| 1 |  1 | 1   | | 
| 2 |  1 | Mr.Paul | | 
+----+---------+-----------+--+ 

author_idが文字列であり、ユーザーの参照キーであることを確認しますか? doctrineでこれを行うことはできますか、それとも自分で挿入物を管理する必要がありますか?

編集:適切なタイトルがどのようなものであるべきかわからない Edit2:可能な解決策は、Webサイトにアカウントを持っていない作者だけを含む別のテーブルを作ることです。

+0

gootソリューションではないので、名前を入力するだけでなく、新しい著者を作成してから、この新しいauthor_idをデータベーステーブルに入れてください。 私はDoctrineプロではありませんが、実際には悪い練習のため可能ではないと思っています –

+0

ウェブサイトにアカウントを持っていない作家のみが入っている別のテーブルを作成していますか? –

+0

現在の著者テーブルはどのように見えますか? 私はこのテーブルを 'authors_books'、' books'、 'authors''〜accounts'にして、作者がアカウントを持つことができると思います。 –

答えて

2

私はあなたがテーブルbooksテーブルaccountsと、次の必要があり、次のアプローチ

をお勧めします:

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

著者

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

ACCOUNT_IDを空にすることができ

authors_booksを

関連する問題