gpt4 book ai didi

邮件程序的 Mysql 关系数据库

转载 作者:行者123 更新时间:2023-11-30 00:48:06 25 4
gpt4 key购买 nike

我想为 PHP 邮件应用程序创建一个数据库,该程序将允许用户登录,一旦用户登录到系统,他们将能够写入发送至:电子邮件、主题、来自并选择 HTML 模板表单下拉列表菜单。我非常了解如何完成这些任务,但因为我不太擅长设计数据库,所以我决定在这里寻求帮助。

所以我已经识别了 3 个表:

Users[id, firstname, lastname, email, password] 
Message[id, send_to, subject, template_used, from, date, ip_address]
Template[id, temp_name, temp_html].

我正在努力了解关系数据库概念,但这就是我的看法:

用户 1..* -----------1..* 消息,消息 1..1 ----------- 1..1 模板,模板 1..1--------1..* 用户

不确定这些关系,以及用户和消息之间的关系是否正确,这是否是两个表为 1..*..... 的问题?

最佳答案

一个好的关系模型数据库要求表至少符合第三规范化规则(3N)。请阅读有关 1N 2N 3N 的内容。目前,即现有的关系应减少到(一到许多)。如果你期待一个精彩的 RD,就不可能有多对多。我们来分析一下user和messages表的关系:情况一:一个用户可以有多条消息,即(用户----消息)----(一对多)一条消息可以针对多个用户,即(消息-----用户)-----一对多这意味着给用户的消息具有多对多的关系。根据规范化规则,这是不正确的(为了引用完整性)。可以通过引入另一个充当中介的表来避免这种情况,称之为(messageuser)。该表将包含消息外键和用户外键的主键,因为它是主键,因此是复合键。因此我们注意到什么:

(图:简单插图 - 非标准)-抱歉,我无法根据网站的规则和政策上传图片来向您展示这一点。

我们现在有三个表,每个表都有两种关系(一对多)。即用户到用户消息(一个用户有一 strip 有其 id 的消息)和到用户的消息(一条消息发送给具有特定 id 的一个用户)。那不是很好吗?

关于邮件程序的 Mysql 关系数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21205305/

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