1

私はリレーショナル データベースを持っていますが、外部キーが定義されておらず、テーブルの多くは定義されていないInnoDBため、とにかく外部キーをサポートできません。

このデータベースで Doctrine の実験を始めたいのですが、ドキュメントには外部キーへの参照がたくさんあるので、これが可能かどうかはわかりません。

InnoDB必要がなければパフォーマンスに影響を与えたくないので、飛び込んでテーブルストレージエンジンを変更し、大量の外部キーを定義することを心配しています。

  • Doctrine は、エンティティ間の関連付けを管理するために外部キーを定義する必要がありますか?
  • 必須ではなくオプションの場合、外部キーを定義していない場合、Doctrine のどの機能を犠牲にする必要がありますか?
4

2 に答える 2

2

DoctrineをInnoDBに切り替える理由はありません。

  1. いいえ。
  2. データベーススキーマを更新および生成するためのDoctrineのCLIツールは、外部キーを使用してSQLを生成しようとすることがよくあります。これを回避するために、データベースを手動で設定するか、データベースが生成するコードを変更することができます。

だから、いや、それは問題ではありません。

于 2012-08-28T10:09:54.973 に答える
0

エンティティにいくつかの関連付けマッピングを定義すると、教義によって自動的に外部キーに変換される場合があります

http://docs.doctrine-project.org/en/latest/reference/association-mapping.html

私はあなたのデータベースにもそれらの外部キーが欲しいので、あなたのスキーマを作成するためにdoctrine CLIを使用する必要があります

doctrine cli の使用に関する詳細情報: http://docs.doctrine-project.org/en/latest/reference/tools.html

于 2012-08-28T09:57:43.803 に答える