如何通过 PhpMyAdmin 存储外键?
Posted
技术标签:
【中文标题】如何通过 PhpMyAdmin 存储外键?【英文标题】:How to store Foreign Keys via PhpMyAdmin? 【发布时间】:2018-01-29 12:07:39 【问题描述】:在关系数据库中,这是存储外键或关联键的最佳方式,但不确定如何最好地表达它。
例如,如果您有桌子:
用户
身份证 姓名 电子邮件电子邮件:
身份证 电子邮件这不是我实际创建的表格,它只是简单到足以让人们理解这个想法。
如果我要在用户表中创建一个带有 ID 的键,那么当我选择用户表时,电子邮件的 ID 就是电子邮件字段中的值。我可以参考实际的电子邮件字段,这解决了这个问题,但这不是浪费吗?
我正在使用 phpMyAdmin 来设置数据库和密钥。
有什么建议最好的方法吗?
【问题讨论】:
你可以编写mysql查询来为你关心的表创建外键吗? 【参考方案1】:PhpMyAdmin 为 MySQL 操作提供图形用户界面 (GUI)。
最好的方法是数据库,我想你已经创建了,只是运行一个快速查询!
MySQL 看起来很吓人,其实很简单,只要你掌握了它的概念!
通过查看您的示例,您很可能希望运行这样的查询。 (这是粗略的伪,可能不会自己运行)
ALTER TABLE User
ADD FOREIGN KEY (ID) REFERENCES Email(ID);
简单易懂! :)
了解更多所需语法的最佳资源已在 W3 Schools 上发布! This 是你想看的文章!
编辑
作为一般数据库规则,我建议您将所有列名(字段)设为唯一!这样可以避免混淆。例如,您可以使用
UserID
和EmailID
。
【讨论】:
我理解使用Mysql的那一点,有时我会使用Mysql而不是GUI。我在使用 Mysql 时也遇到的问题是,当我查看行或选择所有用户行(例如)时,我希望能够在用户表中看到实际的电子邮件。如果我引用 ID,我看不到这样做,但是如果我引用电子邮件,那么我可以,但我不确定是否应该在键中引用大字段,例如名称、文本标识和电子邮件。 在某些情况下,电子邮件地址用作主键(使用电子邮件而不是 ID)。但是,如果您必须更新电子邮件,这可能会导致问题,它会变得非常混乱!我对 PhpMyAdmin 不够熟悉,无法建议任何其他解决方法,但您可以做的一件事是创建 seom 类型的管理面板,您可以通过它随意布局数据!但这完全取决于拥有上述观点的目的是什么! 好吧,我明白你的意思了,我可能会参考密钥中的电子邮件字段并保持其唯一性,但继续在两个表中使用带有自动增量主键的 ID。这意味着如果有人想要更新他们的电子邮件,它只会创建一个新的电子邮件行。但是我已经计划创建一个管理面板,所以我将不得不乱来看看有什么用!非常感谢您的建议!以上是关于如何通过 PhpMyAdmin 存储外键?的主要内容,如果未能解决你的问题,请参考以下文章