精华内容
下载资源
问答
  • 数据库关系图
    千次阅读
    2021-03-26 14:08:45

    数据库关系图-新建数据库关系图-添加想要的表-表视图-自定义修改–得到想要的列名和说明,说明可以自己添加字段意思

    http://www.coozhi.com/youxishuma/g4/15328.html

    更多相关内容
  • 在新建数据库或附加数据库后,想添加关系表,结果出现下面的错误: 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或ALTER AUTHORIZATION语句将...
  • 花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格...于是开始了我的百度之旅,关于数据库的关系图的文章还真的很少,于是我开始根据petshop,然后建立数据库关系图,开始掌握数据库关系图。我点击MSPet
  • 慕课实战:java大牛带你从0到1企业级电商实战项目的数据库表设计,用visio画的ER
  • 数据库关系图数据库关系图
  • 快速生成 MySQL 数据库关系图

    千次阅读 2022-04-22 09:13:12
    在公司老旧系统里,数据库表很多,但是在设计之初并没有建立好关系图,导致新人刚入职,面对N个库,每个库几百张表,很不方便。 例如:公司某一个系统的库有三百张表,在不熟悉项目的情况下,打开数据库看到一列列的...

    需求描述:

    在公司老旧系统里,数据库表很多,但是在设计之初并没有建立好关系图,导致新人刚入职,面对N个库,每个库几百张表,很不方便。

    例如:公司某一个系统的库有三百张表,在不熟悉项目的情况下,打开数据库看到一列列的表,很不清晰,对新入职同事很不友好。


    需求分析:

    我们一个系统里,可能有很多个模块,例如商城系统中有商品模块、券模块、店铺模块等,没个模块都有几十张表,每个模块需要生成如下关系图:(吐槽一下,Navicat逆向的图没PowerDesigner好看)


    技术方案:

    使用工具:Navicat

            Navicat是国内的一款数据库客户端,内置有模型功能,可以实现需求中,选中一个模块的所有表,逆向表到模型,从而生成ER图,但如果选中表中,没有外键关联,生成出来的模型,并没有像需求中那样,有直观的线连接,所以需要给对应表生成外键SQL。

            从Navicat中选中所有表导出为SQL时发现下图规律


    解决方案:

    1. 把每个表语句拆分出来

    2. 主表与关联表,主表不需要生产外键,关联表可以通过小撇号判断是否需要外键

    3. 说再多文字不如读一遍代码更清晰

    package com.example.demo;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.stream.Collectors;
    
    public class MysqlERGenerate {
        public static void main(String[] args) throws IOException {
            StringBuilder builder = new StringBuilder();
            // 输入从Navicat导出的表结构sql文件 将文件读取出来 放入字符串中
            InputStream is = Files.newInputStream(Paths.get("C:\\Users\\admin\\Desktop\\ddl.sql"));
            String line;
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            line = reader.readLine();
            while (line != null) {
                builder.append(line);
                builder.append("\n");
                line = reader.readLine();
            }
            reader.close();
            is.close();
            String sql = builder.toString();
    
            // 按照规律 使用CREATE TABLE进行分割 并删掉一个文件注释部分
            String[] split = sql.split("CREATE TABLE");
            List<String> list = new ArrayList<>(Arrays.asList(split));
            list.remove(0);
            // 使用开头两个小撇号进行截取 得到表名 转为Map<表名, SQL>
            Map<String, String> collect = list.stream().collect(Collectors.toMap(k -> {
                int firstIndex = k.indexOf("`");
                return k.substring(++firstIndex, k.indexOf("`", firstIndex));
            }, v -> v));
    
            // 需要创建外键的字段与对应的主表名称 Map<外键名, 外键主表名>
            Map<String, String> foreignKey = new HashMap<>();
            foreignKey.put("ticket_no", "ticket");
            foreignKey.put("ticket_define_no", "ticket_define");
            foreignKey.put("pro_no", "pro_main");
            // 循环判断,生成外键SQL
            Set<String> foreignKeyFields = foreignKey.keySet();
            for (String mainTableName : collect.keySet()) {
                String val = collect.get(mainTableName);
                for (String field : foreignKeyFields) {
                    if (!mainTableName.equals(foreignKey.get(field)) && val.indexOf("`" + field + "`") > 0) {
                        String createForeignKeySql = String.format("alter table %s add foreign key %s(%s) references %s(%s);", mainTableName, mainTableName + field + System.currentTimeMillis(), field, foreignKey.get(field), field);
                        System.out.println(createForeignKeySql);
                    }
                }
            }
        }
    }
    

    运行效果:只复制出部分,实际远比这个多

    alter table pro_param add foreign key pro_parampro_no1650765563395(pro_no) references pro_main(pro_no);
    alter table pro_shop_priority_his_20200805 add foreign key pro_shop_priority_his_20200805pro_no1650765563423(pro_no) references pro_main(pro_no);
    
    alter table ticket_define_shop add foreign key ticket_define_shopticket_define_no1650765563423(ticket_define_no) references ticket_define(ticket_define_no);
    alter table ticket_define_item add foreign key ticket_define_itemticket_define_no1650765563425(ticket_define_no) references ticket_define(ticket_define_no);
    
    alter table ticket_his_2019 add foreign key ticket_his_2019ticket_no1650765563432(ticket_no) references ticket(ticket_no);
    alter table ticket_his_2018 add foreign key ticket_his_2018ticket_no1650765563433(ticket_no) references ticket(ticket_no);

     PS:原创,码字不易,转发请标明出处

    1. 外键语句不要去开发测试生产等环境执行,要自己在本地新建库
    2. 新建库时,只转结构就好,不然数据多了,外键语句执行特慢
    3. 结束后,想要那些表之间的关系图,只需要选中后逆向表到模型即可得到需求中的效果
    4. 切记第一点

    展开全文
  • SQLserver 创建数据库关系图

    千次阅读 2021-12-23 19:05:46
    创建SQLSERVER 数据库关系图

    今天在使用SQLserver 创建数据库关系时出现了如下错误 无法解决

    在这里插入图片描述
    期待后续的解决方案,欢迎和感谢知道的小伙伴留言回复。
    使用 cmd Python等暂时性的解决也 OK

    展开全文
  • DbSchema 是一款专业可靠的数据库关系图设计软件,你可以通过拖放或按外键图标添加表格,并具有多种过滤器,数据排序机制等等。可通过多个数据库管理和同步模式使用可帮助您设计,记录和管理数据库,轻松设计新表,...

    DbSchema 是一款专业可靠的数据库关系图设计软件,你可以通过拖放或按外键图标添加表格,并具有多种过滤器,数据排序机制等等。可通过多个数据库管理和同步模式使用可帮助您设计,记录和管理数据库,轻松设计新表,生成HTML5文档,浏览和编辑数据库数据,比较并同步多个数据库上的模式,编辑和执行SQL,生成随机数据。

    f08b9a778c0d9b1fc70a7e36abde17b4.png

    【功能特点】

    1、ER图

    DBNAME图表设计器在DbSchema中,您将通过图表布局与模式交互。通过创建多个布局来更好地理解模式,每个布局都专注于模式的特定部分。布局和模式结构将保存在DbSchema项目文件中。阅

    通过双击它们直接在布局中编辑表格或列。

    通过拖放一个表格列来创建新的外键。

    通过按住SHIFT+CONTROL单击表格标题查看数据库数据。

    设计脱机架构并稍后在数据库中创建它

    不同的图表外观和感觉

    将表中的外键行绘制为表模式或指向每列

    使用不同的外键符号:Idefix,Barker等

    为每张表使用不同的颜色,放置注释标注。

    2、 从数据库反向工程师模式

    通过对数据库中的模式进行逆向工程,可以启动新项目。模式结构将被保存到项目文件中,并且可以在未连接到数据库的情况下重新打开。

    从创建的项目中,您可以连接到另一个数据库并同步这些方案。就像您将开发模式与生产数据库上的模式同步一样。

    使用JDBC驱动程序连接到任何关系数据库。

    上传DbSchema中的任何JDBC驱动程序

    将新数据库添加到支持的数据库列表中

    SSH连接

    自定义查询以反向设计触发器,函数,过程和约束

    将反向工程数据库模式保存为项目文件

    重新打开已保存的项目文件而不连接到数据库

    3、关系数据浏览

    DBNAME数据资源管理器一个非常简单高效的关系数据资源管理器,可以同时查看多个表中的数据,并具有多种过滤器,数据排序机制等等。

    根据表之间的外键,可以在同一时间从多个表中探索数据。可以创建虚拟外键。可以插入新记录,可以编辑现有记录。阅读更多...

    无限大小的浏览树

    过滤表格数据

    在浏览表中插入数据

    保存项目文件中的浏览树,并稍后重新打开

    优化内存使用情况

    查看数据库中的Blob或Clob数据

    在数据库中搜索数据的简单方法

    印花

    2f35e519d012f072266fde42887af964.png

    4、查询生成器

    DBNAME可视化查询构建器和查询编辑器以图形方式编写SQL查询。您可以使用不同的连接子句,如左外连接,使用过滤器或通过查询生成组。可以通过拖放或按外键图标添加表格。阅读更多...

    使用鼠标编辑复杂的查询

    选择查询列

    动态地将新表添加到查询中

    将GroupBy条件用于查询

    设置查询条件

    执行查询

    预览查询SQL

    5、SQL编辑器

    具有语法高亮和代码完成功能的Sql编辑器可以帮助您编辑和执行SQL。它可以执行简单的查询以及脚本。输出可以显示在屏幕上或直接后台处理到文件中。它可以做图解说明计划。阅读更多...

    使用自动完成编辑查询

    SQL关键字的突出显示

    执行单个查询以及脚本

    解释查询执行计划

    使用多个结果窗格

    将文件结果导出为CVS,Excel,制表符分隔等

    6、生成模式脚本

    在DbSchema中,您可以生成架构脚本并将数据导出到脚本中。 使用生成的脚本可以在任何数据库上重新创建模式。

    7、模式同步

    将模式转换为DBNAMEDbSchema正在使用自己的图像存储在项目文件中。无需连接到保存到文件的数据库即可编辑架构。比连接数据库(可以是不同的数据库)并同步模式。决定数据库或本地项目上缺少的每个表,列等,以便创建它或将其放在一侧(从数据库或本地项目中删除)。阅读更多...

    从数据库中反向设计数据库模式

    将数据库模式与数据库同步

    为每个找到的差异选择一个操作:'合并到本地项目','更改数据库'或'无操作'

    为数据库修改生成一个SQL脚本

    比较来自两个DbSchema项目文件的方案

    使用DbSchema将数据库更新为最新的模式版本

    有一个中央项目和多个数据库

    将架构转换为不同的数据库

    f06c616c44d0d5705c8b6cd3df25b7be.png

    8、 将架构转换为不同的数据库

    由于DbSchema项目独立于数据库,因此可以在项目属性中更改项目Rdbms。您可以创建或同步您的架构与不同的数据库。更改模式Rdbms将为所有列应用新的数据类型映射,这也基于标准的9、JavaSQL数据类型。

    将分隔文本,XML或Excel文件中的数据导入数据库。非常容易使用,数据预验证。

    9、打印数据库DiagramSmart打印

    DbSchema可以打印最佳布局图像。您还可以将图像打印为图像或生成包括小尺寸矢量图像的HTML文档。

    预览打印的页面

    选择打印缩放以及打印的页面

    最佳的打印质量

    10、DbSchema解释计划图解说明计划

    解释计划在数据库为解释计划函数返回的原始文本旁边显示一个包含事件时间线分布的图表。在图中显示了每个表或索引访问的提示。这可以轻松识别查询中最耗时的事件,并轻松识别正在访问数据的事件。

    11、随机数据生成器随机数据生成器

    在数据库中生成测试数据。可以使用包括整数,随机和反向正则表达式模式的可配置模式。预定义的模式库将有助于为每列找到最佳模式。

    51756aa344d54100495e79a044842ef4.png

    12、文档

    您可以输入任何模式表,列等的注释或标注。将鼠标移动到布局上时,您会看到该注释为工具提示。这可以帮助您轻松理解表格和列的定义。

    使用生成HTML文档的功能(包括布局的SVG图像),您可以在项目或Web上发布交互式HTML文档。

    两种文档格式:HTML5或HTML4

    包括布局图像

    通过使用SVG的小尺寸图像

    交互式图像。将鼠标移动到图像中的列上并读取模式注释

    13、团队设计模式;将项目文件存储在GIT或SVN中

    DbSchema拥有自己的架构映像,除了数据库中的架构外。此图像与布局和工具(SQL编辑器,查询生成器,关系数据编辑器)一起保存到项目文件中。项目文件是XML格式的文本文件。它可以用任何文本编辑器打开。该文件可以在Subversion存储库(Git,Svn,Mercurial等)中共享。这样,您可以在不同的时间点控制不同版本的架构。

    14、自动化脚本

    DbSchema可以以非交互模式启动并自动执行Groovy脚本。 该脚本可以完全控制DbSchema逻辑,因此可以对模式进行逆向工程,生成文档等。这样,不同的操作就可以自动化。

    15、表格和报告

    DBNAME表单和报表使用DbSchema,您可以构建小型应用程序或创建具有多个主节点的报表。 Forms引擎非常强大并且简单易用。 内部脚本可用于使用JavaScript或Groovy对表单或报告逻辑进行建模。

    展开全文
  • DbSchema数据库关系图设计器是一款专门用于绘制ER图的工具。通常数据库之间存在一定的关系,想要将这些关系展现出来就得靠ER图。它非常易于使用,可快速完成布局和设计。DbSchema是什么如果你想设计数据库,探索和...
  • SQL Server Management Studio中数据库关系图无法打开 由于数据库关系图只有数据库创建者或者所有者才能打开,所以只需要更改其所有者我当前登录用户就行了 选中数据库,右键,属性 选择文件 点击修改所有者...
  • 使用Navicat12生成数据库关系图

    千次阅读 2020-06-28 13:47:55
    在Navicat12中生成ER关系图 1,数据库中表需要建立主外键关系,才能生成,这里示例开源项目若依的数据库 2,点击数据库,右键选择–》逆向数据库到模型 3,生成ER图,如下 4,点击其中某一个字段可以进行修改 5,...
  • 文章目录创建数据库关系图二.数据的操作1.添加数据添加单行数据添加多行数据2.简单查询数据3.修改数据4.删除数据5.还原数据表数据库的设计主键的选择外键的选择 创建数据库关系图 生成数据库关系图 二.数据的操作 1...
  • sqlserver数据库学习之创建数据库关系图

    万次阅读 多人点赞 2018-04-28 18:15:52
    在学习SQLserver的过程中,当我们需要写一些系统有关数据库的数据结构说明文档的时候,我们常常会用到一些表的数据库关系图,利用SQLserver本身的创建数据库关系图的功能就可以很好的画出来。建立数据库关系图注意点...
  • 在线数据库关系图工具

    千次阅读 2019-12-17 15:47:00
    https://dbdiagram.io/d 效果
  • 数据库关系图的作用是什么?

    千次阅读 2021-01-14 14:39:30
    问题详情数据库关系图的作用是什么?一、数据库关系图的作用是什么?二、ER图的作用是什么?三、两者之间的差别和联系???作者: zhanghaojiefengf发布时间: 2011-10-25Mark,学习。作者: zhanghaojiefeng发布时间...
  • 使用DSL语言,可以简单快速地创建数据库关系图; Online :不需要安装软件,方便快捷,而且支持拖动和调节,使用Google/github账号登录,可以在线保存设计好的图 Import/Export : 支持导出DDL SQL和PDF,支持导入...
  • 数据库技术与应用 设置数据库关系图-A学习任务书.doc 学习资料 复习资料 教学资源
  • 解决无法添加数据库关系图问题解决无法添加数据库关系图问题解决无法添加数据库关系图问题
  • 关于 ”此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用数据库属性对话框的文件”页或ALTER AUTHORIZATION 语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象...
  • ![图片说明](https://img-ask.csdn.net/upload/201810/22/1540217537_825803.png) 看了下教程,别人是由数据库关系图这个选项的,请问要在哪里找
  • HLR数据库关系图

    2015-01-20 10:38:15
    HLR内部数据库之间关系的说明 其中包括HLRU单元的数据库之间的联系
  • MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL ...
  • 首先在work表中对于两个字段,employee和department都建立了外键,然后想看一下数据库关系图,报错:索引超出了数组界限。测试了其他的数据库是可以正常创建数据库关系图的。 2问题解决 网上很多的解决方案是说版本...
  • MS SQLServer 创建数据库关系图

    千次阅读 2019-03-06 11:30:36
    我们会用到一些表的数据库关系图,利用SQLserver本身的创建数据库关系图的功能就可以很好的画出来。 新建数据库关系图的时候常常会碰到下图的提示: 解决一: 新建查询页面当中输入该SQL语句 exec sp_...
  • Moodle 数据库关系图
  • 数据库关系图1.在visio中新建数据库模型图打开visio 2010,文件—>新建—>数据库—>数据库模型图。建立数据库模型图之后,菜单栏多出一个菜单项"数据库"。看下图菜单栏多出了一个数据库项2.依次画数据库建立...
  • 解决SQL SERVER 2005 不能用数据库关系图的问题 解决SQL SERVER 2005 不能用数据库关系图的问题 解决SQL SERVER 2005 不能用数据库关系图的问题
  • 空间数据库技术应用:关系数据库的设计.pptx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,455,418
精华内容 582,167
关键字:

数据库关系图

友情链接: 01生成标准数据.zip