質問: joomlaがコアテーブル構造で外部キーを使用しないのはなぜですか? カスタムコンポーネントを開発していて、#__users(id)を参照する外部キーuser_idを使用したい。 joomlaは、コアテーブルで#__user_notesやuser_profilesなどの外部キーを使用していないことに気付きました。記事にコメントを追加するための拡張機能を作成したいとします。テーブルの構造は次のようになります。create table if not exists `#__comp_comments` ( `id` int(10) unsigned not null auto_increment, `user_id` int(20) unsigned not null, `comment` text, primary key (`id`) /* placeholder */ ); 今私は2つのオプションがあります:, foreign key (`user_id`) references `#__users`(`id`) on update cascade on delete cascade そして, key `idx_userid` (`user_id`) あなたの提案は何ですか?カスタムコンポーネントで外部キーを使用するかどうか。なぜ?
回答: innodbストレージエンジンのみが外部キー定義を許可し、myisamテーブルのみをサポートするサーバーにjoomlaをインストールできるためです。したがって、パブリックコンポーネントの場合は、テーブル構造で外部キーを使用しないことをお勧めします。