私はPHPプロジェクトを継承しており、クライアントはCMSにいくつかの機能を追加したいと考えています。基本的に、CMSを使用するとニュースを作成でき、すべてのニュースは同じコンテンツで始まり、実際のニュースの見出しである1つのテーブルに保存されます。記事は別のテーブルに保存され、ニュースの画像は別のテーブルに保存されます。基本的に、ニュースのベース行が削除された場合、関連するすべての行を削除する必要があります。データベースは外部キーで機能するように設定されていません。カスケード削除を使用できないので、ベースニュース行のIDのみを使用している場合、必要なすべてのコンテンツを削除するにはどうすればよいですか?
どんな助けでも非常に役に立ちます申し訳ありませんが、これ以上の助けを与えることはできません。これが役立つ場合は、これがテーブルスキームの元のSQLですか?
--
-- Table structure for table `mailers`
--
CREATE TABLE IF NOT EXISTS `mailers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`mailer_title` varchar(150) NOT NULL,
`mailer_header` varchar(60) NOT NULL,
`mailer_type` enum('single','multi') NOT NULL,
`introduction` varchar(80) NOT NULL,
`status` enum('live','dead','draft') NOT NULL,
`flag` enum('sent','unsent') NOT NULL,
`date_mailer_created` int(11) NOT NULL,
`date_mailer_updated` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
-- --------------------------------------------------------
--
-- Table structure for table `mailer_content`
--
CREATE TABLE IF NOT EXISTS `mailer_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`headline` varchar(60) NOT NULL,
`content` text NOT NULL,
`mailer_id` int(11) NOT NULL,
`position` enum('left','right','centre') DEFAULT NULL,
`created_at` int(10) NOT NULL,
`updated_at` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
-- --------------------------------------------------------
--
-- Table structure for table `mailer_images`
--
CREATE TABLE IF NOT EXISTS `mailer_images` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(150) NOT NULL,
`filename` varchar(150) NOT NULL,
`mailer_id` int(11) NOT NULL,
`content_id` int(11) DEFAULT NULL,
`date_created` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
スキーマを変更することも、外部キーを使用できるようにDBをMYISAMに変更することもできないことに注意してください。