gpt4 book ai didi

MySQL实现表到数据库

转载 作者:行者123 更新时间:2023-11-29 14:19:44 25 4
gpt4 key购买 nike

我必须执行以下任务:任务:目前数据库知道两种类型的消息:

  • 用户发布且可供所有人阅读的公开消息
  • 用户发布的非公开消息。这些消息只能由发帖用户标记为好友的用户阅读。

在此步骤中,您应该添加第三种类型的消息。第三种类型的消息应该只能由指定的接收者读取。这意味着数据库需要提供以下内容:

  • 区分三种类型消息的方法。这涉及到对 Message 表的更改。
  • 指定特定消息的收件人的方法。这可能需要一个额外的表。

所有这些都必须再次以最小的存储量来实现,即,您必须从 MySQL 手册中选择适当的数据类型。您可以假设随着时间的推移添加的消息总数可能达到 1,000,000,000 条。您的工作是为此目的实现必要的更改和附加表以及所需的任何键和外键关系。

首先是我的两个表:用户

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

我的解决方案:我正在考虑创建一个名为“Message_level”的新表,并具有“message_level_id”列(将 1,2,3 称为 1=公共(public)、2=私有(private)、3=特定)和“message_level” (其中将说明公共(public)、私有(private)和特定级别)。然后我可以使用“Message_level”作为“Message”表的外键,并将“is_public”列替换为“message_level_id”。

我解决这个问题的方法正确吗?还有其他方法可以提高效率吗?

我将如何处理第二个任务,即指定特定消息的收件人是谁?

最佳答案

我会这样:

User: user_id, given_name, ...

Message: message_id, owner_id (fk User), subject, body, posted, message_type_id (fk Message_type)...

Message_recipients: user_id (fk User), message_id (fk Message)

Message_type: message_type_id, description (1:public, 2:friends, 3:specific_recipients)

关于MySQL实现表到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com