タスク:
現在、データベースは2種類のメッセージを認識しています。
- ユーザーが投稿し、誰でも誰でも読むことができるメッセージ
- ユーザーが投稿し、非公開のメッセージ。
これらのメッセージは、投稿ユーザーが友達としてマークしたユーザーのみが読むことができます。このステップでは、3番目のタイプのメッセージを追加する必要があります。この3番目のタイプのメッセージは、指定された受信者のみが読み取ることができる必要があります。
これは、データベースが以下を提供する必要があることを意味します。
- 3種類のメッセージを区別する方法。これには、メッセージテーブルの変更が含まれます。
- 特定のメッセージの受信者を指定する方法。これにはおそらく追加のテーブルが必要になります。
あなたの仕事は、この目的のために必要な変更と追加のテーブル、および必要なキーと外部キーの関係を実装することです。
これがタスクに関連する2つの既存のテーブルです(私のデータベースからのコピー)。
ユーザーテーブル
CREATE TABLE IF NOT EXISTS `User` (
`user_id` int(10) unsigned NOT NULL auto_increment,
`given_name` varchar(60) default NULL,
`surname` varchar(60) default NULL,
`address` varchar(255) default NULL,
`city_id` int(10) unsigned NOT NULL,
`date_of_birth` datetime default NULL,
`email` varchar(80) default NULL,
PRIMARY KEY (`user_id`),
KEY `ix_user_surname` (`surname`),
KEY `ix_user_given_name` (`given_name`),
KEY `ix_user_name` (`given_name`,`surname`),
KEY `ix_user_date_of_birth` (`date_of_birth`),
KEY `ix_user_email` (`email`),
KEY `ix_user_city_id` (`city_id`)
) ENGINE=InnoDB
メッセージテーブル
CREATE TABLE IF NOT EXISTS `Message` (
`message_id` int(10) unsigned NOT NULL auto_increment,
`owner_id` int(10) unsigned default NULL,
`subject` varchar(255) default NULL,
`body` text,
`posted` datetime default NULL,
`is_public` tinyint(4) default '0',
PRIMARY KEY (`message_id`),
KEY `ix_message_owner_id` (`owner_id`)
) ENGINE=InnoDB