`

今天看了个开源的web应用,近100个表,用power designer逆向后看表间关系,结果出来了,吓了一跳。。。

Web 
阅读更多
100个表之间竟然一个关系都没有,就是没有外键?

相应的,别的应用的表间联系却比蜘蛛网还蜘蛛网,


我想问下,这样2种表的设计都各有啥利弊?
分享到:
评论
14 楼 steptou 2011-04-12  
kimmking 写道
xsnxj 写道
表间有联系可以防止出错和乱引用(开发人员),表间无联系可以随意修改和执行具体没有定义哪种的好坏,一般是系统设计员制作的会带上表间联系,相反是临时应用就会出现无表间联系的情况,具体看需求

表有fk的关联,也就有了约束,
优点,数据的一致性,
缺点,插入删除、备份迁移的问题,性能,等等

数据的一致性一般都是要保证的,不用库的关系的话,需要程序里自己去保证。
这个跟 identity字段有点类似,数据库支持identity/increment或者sequence,
再或者不用数据库的,自己写个identity的机制。



这个答复很中肯!

那我再问,如果我的数据库只有表(什么外键等约束都没有),就当我的数据库是文本数据库吧,
这样,为了保持数据的一致性,都哪些地方需要注意的?
这个我觉得应该有很多地方吧,还望大家踊跃发言!
13 楼 sls0919 2011-04-12  
用外键,检索起来很麻烦。在应用时通过事物控制或其它保证数据一致性就行
12 楼 Bruce.Sun 2011-04-12  
刚进公司那会儿我也有楼主一样的疑惑
11 楼 lerous 2011-04-12  
不用外键太正常了吧,程序维护外键关系呗~
10 楼 helin 2011-04-12  
我们都不用外键。不用更健康~
9 楼 helin 2011-04-12  
我们都不用我键。不用更健康~
8 楼 caizi12 2011-04-12  
学习时候还用用,现在做的系统,从来不用外键。
7 楼 fnet 2011-04-11  
别说网站,金X的企业应用也没有外键。
6 楼 zistrong 2011-04-11  
不用外键好多年了
5 楼 freish 2011-04-11  
外键需要数据库耗费资源来维护的,影响sql的性能

如果我能在程序中保证数据库不会出现数据不一致,我也不会使用外键
4 楼 Crusader 2011-04-11  
数据一致性,简便
性能,简便
3 楼 huzhenyu 2011-04-11  
关系应该是有的,在开发时有.应该是说产品发布时为了性能我稳定运行,去掉也关联.你反向时自然看不到.
2 楼 kimmking 2011-04-10  
xsnxj 写道
表间有联系可以防止出错和乱引用(开发人员),表间无联系可以随意修改和执行具体没有定义哪种的好坏,一般是系统设计员制作的会带上表间联系,相反是临时应用就会出现无表间联系的情况,具体看需求

表有fk的关联,也就有了约束,
优点,数据的一致性,
缺点,插入删除、备份迁移的问题,性能,等等

数据的一致性一般都是要保证的,不用库的关系的话,需要程序里自己去保证。
这个跟 identity字段有点类似,数据库支持identity/increment或者sequence,
再或者不用数据库的,自己写个identity的机制。

1 楼 xsnxj 2011-04-09  
表间有联系可以防止出错和乱引用(开发人员),表间无联系可以随意修改和执行具体没有定义哪种的好坏,一般是系统设计员制作的会带上表间联系,相反是临时应用就会出现无表间联系的情况,具体看需求

相关推荐

    用power Designer生成mysql表关系视图的方法

    总结以上知识点,使用Power Designer生成MySQL表关系视图是一个涉及数据库管理、ODBC驱动配置以及Power Designer操作的应用过程。掌握这些知识点不仅有助于数据库管理员和开发人员进行高效的工作,也能够帮助相关IT...

    iTop,即IT运营门户(IT Operation Portal),是一个开源web应用程序,一款ITSM工具

    iTop,即IT运营门户(IT Operation Portal),是一个开源web应用程序,用于IT环境的日常运营。它基于ITIL最佳实践,而又不拘泥于任何具体流程。它很灵活,可以适应不管是非正式的、务实的流程,还是严格遵循ITIL的...

    开源Web报表制作工具OpenReports3.0简介

    OpenReports是一款强大的开源Web报表制作工具,专为生成、管理和分发各类报表而设计。它提供了灵活的报表设计,支持多种数据源,并且与多种开源技术栈无缝集成,如Java、Tomcat、JDBC等。在OpenReports3.0版本中,这...

    web游戏-web开源网页游戏代码(仅供学习使用)

    "Web游戏-Web开源网页游戏代码(仅供学习使用)"这个标题指出,这是一份关于Web游戏的开源代码库,主要用于教学目的。这里的“Web游戏”指的是在网页浏览器上运行的游戏,无需下载安装即可游玩。而“开源”意味着...

    Mail Web开源版(邮件系统客户端)

    总之,Mail Web开源版是邮件系统客户端领域的一个创新实践,它将复杂的邮件处理功能与Web技术相结合,提供了一种轻量级、易用的解决方案。无论是对个人开发者还是企业团队,都能从中受益,通过理解和利用开源代码,...

    一款开源Web图片编辑器,助开发者快速构建图片编辑器应用

    它是一款基于Fabric + Vue3开发的一款开源Web图片编辑器,二次开发简单、扩展便捷,可帮助开发者快速构建一个面向非专业设计人员的图形编辑器。 项目以Fabric.js 为底层,使用Vue3框架和精致的View UI Plus组件库...

    淘宝客开源web应用1.0.1(php-api2.0)

    【淘宝客开源Web应用1.0.1 (PHP-API2.0)】是一个基于PHP编程语言构建的开源项目,主要用于与淘宝开放平台(Taobao Open Platform, TOP)的API2.0版本进行交互。该应用旨在帮助开发者或者商家更好地利用淘宝的数据资源...

    JBPM4_WebDesigner

    3. **WebDesigner**:作为JBPM4的一个重要组件,WebDesigner是一个基于浏览器的工具,无需安装即可使用,大大降低了使用的门槛。用户可以通过Web界面进行流程设计,保存的设计可以直接在JBPM服务器上部署,实现快速...

    Web桌面应用框架 HoorayOS v2.0 开源免费版.rar

    HoorayOS是一款web桌面应用框架,你可以用它二次开发出类似Q web这类的桌面应用网站,也可以开发出适合项目的桌面管理系统。 简化开发 HoorayOS考虑到不同业务会涉及到各种需求及展示模式,所以在HoorayOS里,会...

    [其他类别]开源WEB在线SQL管理工具 v1.0.1_web_sql_manager.zip

    【其他类别】开源WEB在线SQL管理工具 v1.0.1_web_sql_manager.zip是一个非常实用的资源,它提供了一个基于Web的SQL管理平台,允许用户远程或者本地通过浏览器对数据库进行操作。这款开源工具旨在简化数据库管理工作...

    用于铁路基础设施设计、容量分析、时间表和模拟的开源Web应用程序___下载.zip

    标题中的“用于铁路基础设施设计、容量分析、时间表和模拟的开源Web应用程序”是指一个专门针对铁路行业的软件工具,它提供了全面的功能,包括设计、分析、时间表制定以及模拟操作。开源意味着源代码对公众开放,...

    WEB开发常用JAR包

    8. **MYSQL**:MySQL是一个关系型数据库管理系统,广泛应用于Web应用中。它具有快速、可靠且成本效益高的特点,支持多种操作系统,并且提供了丰富的编程接口,便于开发者进行数据库操作。 以上这些JAR包在Web开发中...

    基于DEM4CHE和Web的开源DICOM浏览器(oviyam0.9)

    【基于DEM4CHE和Web的开源DICOM浏览器(oviyam0.9)】是一个用于查看和处理DICOM医学影像数据的应用程序。DICOM(Digital Imaging and Communications in Medicine)是医疗行业中广泛使用的标准,用于存储、传输和...

    DWR js框架 javascript框架 web与java交互 Direct Web Remoting Ajax开源框架

    Direct Web Remoting (DWR) 是一个开源的Java库,它允许Web应用程序在客户端的JavaScript和服务器端的Java之间进行直接的、异步的通信,实现了Web应用中的Ajax功能。DWR通过自动化处理JavaScript和Java之间的类型...

    JavaScript_开源视频编辑web应用程序.zip

    这个"JavaScript_开源视频编辑web应用程序.zip"压缩包显然包含了一个使用JavaScript技术实现的开源视频编辑工具,这对于开发者来说是一个宝贵的资源,可以学习到如何在Web环境中处理视频流、实现剪辑、特效等高级...

    开源六位半万用表.rar

    综上所述,这个压缩包是一个全面的开源六位半万用表资源集合,涵盖了从理论学习到实际操作的多个层面,对于电子爱好者和专业工程师来说,都是一个极好的学习和开发平台。通过深入研究这些材料,可以增进对数字多用表...

    开源的快速web开发框架

    WebBuilder是一款跨平台、数据库和浏览器的可视化Web应用开发平台。WebBuilder使用了多项最新的技术,使Web应用的开发更快捷和简单。 作为一款高效的Web开发工具,WebBuilder的特色是: .基于浏览器的集成开发环境 ...

    JAVA开源的WEB测试工具

    15. **CubicTest**:一个开源的Eclipse插件,提供图形化界面设计Web应用测试,降低了测试的复杂度,使得非技术人员也能进行测试。 以上这些工具各有特色,可以根据项目的具体需求选择合适的测试框架。它们的出现...

    java web 开源 物流软件

    综上所述,这款Java Web开源物流软件提供了一个完整的物流解决方案,结合B/S架构的易用性和Java的稳定性能,为物流行业带来了高效、灵活的选择。通过开源社区的支持,软件能够持续迭代和优化,满足日益复杂和个性化...

    Rukovoditel 3.2.1 - Project Management/CRM:基于 Web 的开源项目管理应用程序-开源

    Rukovoditel 是一个免费的基于 Web 的开源项目管理应用程序。 与传统应用程序相去甚远,Rukovoditel 为用户提供了更广泛和广泛的项目管理方法。 其自定义选项允许用户创建其他实体、修改和指定它们之间的关系,并...

Global site tag (gtag.js) - Google Analytics