我最近打算使用 mysql 设计一个软件,数据库用来存放一些历史数据,需要设计一些数据库的表格。
我在网上看到有一些工具,设计不同的表之后,表和表之间的外键连接会通过箭头连接的方式显示在 gui 界面里面。
同时能生成 sql 的语句来创建这些表,请问有这样的工具么?在线的或者离线的都可以推荐,最好是免费可以使用的,谢谢!
我最近打算使用 mysql 设计一个软件,数据库用来存放一些历史数据,需要设计一些数据库的表格。
我在网上看到有一些工具,设计不同的表之后,表和表之间的外键连接会通过箭头连接的方式显示在 gui 界面里面。
同时能生成 sql 的语句来创建这些表,请问有这样的工具么?在线的或者离线的都可以推荐,最好是免费可以使用的,谢谢!
|
teliAug 13, 2023
1
不建议添加外键
|
|
ruochen666Aug 13, 2023
2
powerdesigner
|
|
balancircleAug 13, 2023
3
PDMan
http://www.pdman.cn/ |
|
wusheng0Aug 13, 2023 via Android
4
|
|
wusheng0Aug 13, 2023 via Android
5
|
|
taotaodaddyAug 13, 2023
6
navicat 较新版本有带连线和箭头的设计工具
|
|
565656Aug 13, 2023
7
jb 全家桶里好像有个
|
|
lujiaxingAug 13, 2023
8
PowerDesigner 就可以.
你要是觉得 PD 比较古老你可以试试 Navicat. 也有这种功能. |
|
10
|
|
akiraAug 13, 2023
11
外键,触发器这些东西,用的时候是爽了,出问题的时候,排查起来头大的要命
|
|
12
我是一个初学者,楼上好几个人都说不要使用外键,但我觉得很奇怪,如果不使用外键的话,这个关系型数据库如何进行表和表之间的关联呢?
|
|
AEDaydreamerAug 13, 2023
13
用逻辑外键,非物理外键。
|
|
ktqFDx9m2Bvfq3y4Aug 13, 2023 via iPhone
14
|
|
charlie21Aug 13, 2023 via iPhone
15
外键、索引、约束 ( constraint ,删掉一行数据时候会提示无法删除因为有约束存在),三者关系是什么?
如果一个约束是为了在 “误删”数据之时丢出报错,那么在无外键的情况下还有一个约束吗? |
|
loadingAug 13, 2023
16
@charlie21 #15 现在都是逻辑删除,不是真删除。
逻辑删除无论是性能还是防误操作,都更优。 逻辑删除一般就是有个 delete_time 一类的字段默认 null ,not null 就是已经删除了。 |
|
17
@loading 阅读了下这篇文章,结论基本可以从不使用外键修改为不使用 MySQL 。
至于文章中讨论的,数据删除导致大量写入,这就是需求本身所要求的,无论你用不用外键,数据删除是一定要删的。 至于 #16 提及的,所谓软删除,是彻彻底底的反模式,基本可以视为概念不清导致的混乱设计,可以查看[这个链接]( https://twitter.com/haoel/status/1440633425279389707)。 @gdb 你需要的是 ERD 软件,Navicat 和 MySQL 自带的 MySQL Workbench 可以满足这个需求 |
|
isekiAug 13, 2023
18
|
|
loadingAug 13, 2023
19
|
|
20
|
|
isekiAug 13, 2023
21
至于针对性能的讨论,这个可能就要 case by case 地分析和论证了
|
|
Rache1Aug 13, 2023
22
Jetbrains 的 DataGrip 生成的图会自动考虑你表名(复数、单数)和字段名之间的关系,来生成 “箭头”,不依赖外键。
比如: users 表有用户 id ,posts 表有 user_id ,那就会自动把 posts 表和 users 表关联起来。 再比如,categories 表和 products 表有一个关系表,分别有 category_id 和 product_id ,DataGrip 也能帮你自动连起来。 也就是说,只要你表名称是复数的,字段名字是单数 + id 的形式,他就可以自动推断出来。 |
|
qsnow6Aug 14, 2023
25
用就完事,国外的社区主流的观点都是应用尽用。
不然搞 ORM 搞啥。 |
|
a33291Aug 14, 2023
26
曾经有一个项目必须走边界摆渡数据到内网,然后边界摆渡时,如果有外键则经常导致数据错乱,没办法只能删掉外键🤣
|
|
kinXdleAug 14, 2023
27
不用外键是因为没有 dba 啊
|
|
TomatoCLIAug 14, 2023 via iPhone
28
没想到外键警察也出现了....都魔怔了
|
|
TomatoCLIAug 14, 2023 via iPhone
29
我喜欢用 plantuml 来画 如果不想折腾 navicat 之类的 当然记得导出的时候去除外键
|
|
YinHeWLAug 14, 2023
30
用 MySQL 不用外键的,真令人无语
|
|
hakuya7Aug 14, 2023
32
PlanetScale 直接就是明确不支持外键的,在这篇文章有提到原因 https://planetscale.com/docs/learn/operating-without-foreign-key-constraints
|
|
sorcererAug 14, 2023 via Android
33
pdman
|
|
34
各位楼上的,你们说的 pdman 是国产软件,是这个么?现在似乎改名为 pdmaner 了?
PDManer Releases - Gitee — https://gitee.com/robergroup/pdmaner/releases |
|
cl472903345Nov 12, 2024
35
mac store 搜索 ER Designer ,看看小弟写的
|