我在工作中使用 JetBrains 的 DataGrip。没关系,但我不知道如何在这张图片中创建表之间的关系:
3 回答
这是一个两步程序。第一步,您必须修改表以添加外键约束定义。第二步,可以显示表格图。
首先,右键单击 DataGrip 中表的名称,然后选择Modify Table。您将看到四个选项卡:Columns、Keys、Indices和Foreign Keys。选择列选项卡。右键单击要成为外键的列名,然后选择New Foreign Key。该窗口将切换到其外键选项卡,其中填写了一些信息。填写您的“目标表”。REFERENCES
您可能还必须在 SQL 语句的短语中写入目标列名。现在在“修改表”窗口中查看所有信息,如果满意,请单击“执行”。
其次,再次右键单击 DataGrip 中表的名称,这次选择Diagrams > Show Visualization。您现在应该看到一个图表,显示原始表和引用表之间的关系。
在 DataGrip 帮助中,您可以查看使用数据库工具窗口页面的修改表、列、索引或主键或外键的定义部分。那里有一个非常简短的过程描述。
Wikipedia 在其定义外键文章部分中有一个示例,在 DataGrip 的修改表窗口中工作时可能对您有用。
我在DataGrip 2017.1.3中做了这个过程,不知道其他版本是否有差异。
通常:从上下文菜单或按 Ctrl+Alt+U。
如果您找到了这张图片,再进一步深入网站,您将进入此页面: https ://www.jetbrains.com/datagrip/features/other.html
并且有一个解释如何做到这一点。
试试这个创建 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)
) ;