11

我在工作中使用 JetBrains 的 DataGrip。没关系,但我不知道如何在这张图片中创建表之间的关系:

在此处输入图像描述

4

3 回答 3

22

这是一个两步程序。第一步,您必须修改表以添加外键约束定义。第二步,可以显示表格图。

首先,右键单击 DataGrip 中表的名称,然后选择Modify Table。您将看到四个选项卡:ColumnsKeysIndicesForeign Keys。选择选项卡。右键单击要成为外键​​的列名,然后选择New Foreign Key。该窗口将切换到其外键选项卡,其中填写了一些信息。填写您的“目标表”。REFERENCES您可能还必须在 SQL 语句的短语中写入目标列名。现在在“修改表”窗口中查看所有信息,如果满意,请单击“执行”。

其次,再次右键单击 DataGrip 中表的名称,这次选择Diagrams > Show Visualization。您现在应该看到一个图表,显示原始表和引用表之间的关系。

在 DataGrip 帮助中,您可以查看使用数据库工具窗口页面的修改表、列、索引或主键或外键的定义部分。那里有一个非常简短的过程描述。

Wikipedia 在其定义外键文章部分中有一个示例,在 DataGrip 的修改表窗口中工作时可能对您有用。

我在DataGrip 2017.1.3中做了这个过程,不知道其他版本是否有差异。

于 2017-05-12T19:44:31.947 回答
2

通常:从上下文菜单或按 Ctrl+Alt+U。

如果您找到了这张图片,再进一步深入网站,您将进入此页面: https ://www.jetbrains.com/datagrip/features/other.html

并且有一个解释如何做到这一点。

于 2016-01-29T15:11:28.657 回答
1

试试这个创建 3 个表的小 SQL 脚本。我想你会发现这项工作很好。

CREATE TABLE product (
    category INT NOT NULL, id INT NOT NULL,
    price DECIMAL,
    PRIMARY KEY(category, id)
);

CREATE TABLE customer (
    id INT NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE product_order (
    no INT NOT NULL AUTO_INCREMENT,
    product_category INT NOT NULL,
    product_id INT NOT NULL,
    customer_id INT NOT NULL,

    PRIMARY KEY(no),
    INDEX (product_category, product_id),
    INDEX (customer_id),

    FOREIGN KEY (product_category, product_id)
      REFERENCES product(category, id)
      ON UPDATE CASCADE ON DELETE RESTRICT,

    FOREIGN KEY (customer_id)
      REFERENCES customer(id)
)   ;

在此处输入图像描述

于 2019-01-28T02:01:36.657 回答