【问题标题】:How do I create a relation between the UserProfile and Location tables?如何在 UserProfile 和 Location 表之间创建关系?
【发布时间】:2012-09-19 06:35:29
【问题描述】:

我正在尝试创建一个包含两个表的数据库:Location 和 UserProfile。

Location 包含地址,UserProfile 包含 HowtownLocation 和 CurrentLocation。

我希望 Hometownlocation 和 Currentlocation 包含来自 Location 的 ID,并在删除用户时级联(假设多个用户不共享同一地址)。

一个用户可以有多个地址(即家乡和当前),一个地址可以被多个用户使用。

我有一个工作版本,但我仍然需要它来级联更改...并且我希望能够通过创建新的 UserProfile 在 PHPMyAdmin 中将数据输入到其中。

我正在使用 MySQL Workbench,但这并不重要。

:)

【问题讨论】:

  • 您的数据库允许设置触发器吗?在那种情况下,在删除时设置触发器是非常聪明的......
  • 当用户被删除时你想级联什么?
  • 哦,对不起。如果具有该位置的用户删除了他们的帐户,并且他们是该地址的唯一用户,我希望删除该位置行。
  • 那将是“ON DELETE CASCADE”然后...
  • 对不起,我很困惑>.

标签: php mysql sql relational-database mysql-workbench


【解决方案1】:

MySQL Reference 有帮助。语法是:

[CONSTRAINT [symbol]] FOREIGN KEY
  [index_name] (index_col_name, ...)
  REFERENCES tbl_name (index_col_name,...)
  [ON DELETE reference_option]
  [ON UPDATE reference_option]

reference_option:
  RESTRICT | CASCADE | SET NULL | NO ACTION

还要确保您的数据库不是 MyISAM,而是 InnoDB,据我所知,这是较新 MySQL 版本中的默认数据库。

【讨论】:

    猜你喜欢
    • 2016-11-25
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2013-01-14
    • 2020-08-03
    • 2022-01-23
    • 2019-01-03
    相关资源
    最近更新 更多