我如何在DataGrip(Jet Brains)中创建表之间的关系

时间:2016-01-29 10:09:09

标签: jetbrains-ide datagrip

我在工作中使用JetBrains的Data Grip。没关系,但我不知道如何在表之间建立关系。

就像这张照片:

enter image description here

3 个答案:

答案 0 :(得分:12)

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

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

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

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

Wikipedia在其Defining foreign keys文章部分中有一个示例,在使用DataGrip的修改表窗口时可能对您有用。

我在DataGrip 2017.1.3中执行了此过程,并且我不知道其他版本是否有所不同。

答案 1 :(得分:2)

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

如果您已经找到了这张照片,还有一个步骤是深入网站,您将进入此页面: https://www.jetbrains.com/datagrip/features/other.html

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

答案 2 :(得分:0)

如果尝试使用此小型SQL脚本。这将创建3个表。我想您会发现它很好用。

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)
)   ;

enter image description here