首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从对象图中删除对象,同时保持完整性

从对象图中删除对象,同时保持完整性
EN

Stack Overflow用户
提问于 2012-03-27 19:52:04
回答 2查看 118关注 0票数 2

在关系数据库中,处理从对象图中删除对象,同时仍然保留引用完整性的最佳方法是什么?在某种程度上,这是必须发生的。通过软删除或硬删除。

例如,当产品被移除时,确保包含该产品的订单仍然相关的最佳方法是什么,或者进一步确保包含包含该产品的订单的发票仍然相关?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-05 08:14:55

基本上有3种“标准解决方案”:

解决方案1

您需要该产品(就像您的案例一样,因为发票引用了它)。这意味着数据是有效的,唯一的变化是它“脱销”或“脱销”。在任何情况下,您的业务流程通常都需要您处理RMA情况或一些与IRS相关的问题,例如……这意味着不能删除该产品。这只是一个不同的“状态”的产品,需要反映在您的数据库数据模型等。

如果您关心的是性能,请执行一些分析...如果需要,您有许多优化选项...它们通常依赖于RDBMS,其中一种技术是“分区”--每个RDBMS都有自己的机制,这些机制在灵活性等方面存在差异。

解决方案2

你根本不需要任何数据...只要做一个级联删除就可以了……

解决方案3

您只需要历史数据,但“未来的业务流程”将不再需要此实体(即产品)……在这种情况下,一种常见的解决方案是在对“活动/生产表”执行级联删除之前填充存档表。此方案的一个小变体是将所需的信息复制到“依赖行”(在您的情况下是发票),并只删除活动/生产行(即在您的情况下是产品)。

结论

复杂的系统处理许多不同的业务流程/用例,因此倾向于采用上述所有技术-每种技术都根据涉及的特定业务流程/用例而定……

票数 2
EN

Stack Overflow用户

发布于 2012-04-05 20:37:29

这是我从一位未透露姓名的来源得到的答案。我要说的是,他非常受人尊敬,出于尊重,我不会公布他的名字。

我不会在这里接受我自己的答案,也不会绕过赏金,而只是展示他的答案。

“使用功能齐全的关系型数据库管理系统,您可以在"deleted_or_not”列上对表进行分区,这将导致所有实时生产行被压缩存储。如果您不希望过时的数据显示在报表中,只需为整个表指定一个晦涩的名称,如customers_including_deleted_rows,并创建一个视图"customers“(仅包含活动行),大多数应用程序代码都从该视图中查询。当然,这假设保留旧数据有一定的价值。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9896674

复制
相关文章
将LoRa和Google Cloud用于IIoT应用程序
将LoRa连接性与Google Cloud Platform(GCP)配对可以满足广泛的工业IoT(IIoT)用例。LoRa的长久性和灵活性,再加上GCP强大的体系结构和对可扩展创新的承诺,为工业运营商提供了构建明天世界所需的工具。
用户4122690
2020/05/04
6170
将LoRa和Google Cloud用于IIoT应用程序
TikTok 的应用程序日志都记录了什么内容?
近日,TikTok 的命运可谓一波三折。本文,我们来看下黑客对 TikTok 的研究结果吧。
深度学习与Python
2020/10/23
1.3K0
TikTok 的应用程序日志都记录了什么内容?
web 应用程序_web应用程序是什么意思
  根据联机方式与所使用的网络服务不同,会有不同的通信协议。例如,发送信件时会使用SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),传输文件会使用FTP(File Transfer Protocol,文件传输协议),下载信件会使用POP3(Post Office Protocol 3,邮件协议)等,而浏览器跟Web服务器之间所使用的沟通方式则是HTTP(HyperText Transfer Protocol)。Http协议基本上是一种基于请求(Request)/响应(Response)的通信协议,是无状态的通信协议。浏览器在使用http发出请求时,可以有几种请求方法,例如GET、POST、HEAD、PUT、DELETE等,但是对于Servlet或JSP程序而言,最长接触的就是GET与POST协议了。
全栈程序员站长
2022/09/20
1K0
python教程:用简单的Python编写Web应用程序
python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分享一下。
全栈程序员站长
2022/09/08
2.3K0
python教程:用简单的Python编写Web应用程序
使用Python检测并绕过Web应用程序防火墙
Web应用防火墙通常会被部署在Web客户端与Web服务器之间,以过滤来自服务器的恶意流量。而作为一名渗透测试人员,想要更好的突破目标系统,就必须要了解目标系统的WAF规则。如今,许多WAF都是基于签名的。下图简单描绘了一个Web应用防火墙的工作流程: 什么是基于签名的防火墙? 在基于签名的防火墙中你可以自定义签名,如果你知道某种网络攻击遵循某种类型的模式或签名。那么你就可以定义匹配模式过滤掉它们,例如: Payload:- <svg><script>alert&grave;1&grave;<p> 上面定义的
FB客服
2018/02/28
2.5K0
使用Python检测并绕过Web应用程序防火墙
基于Python的Web应用程序的Web服务器比较
在本文中,我们将讨论三个主要内容:Python,Web服务器,最重要的是两者之间的比较。
用户2188327
2020/07/03
2.1K0
基于Python的Web应用程序的Web服务器比较
如何使用Winston记录Node.js应用程序
在本指南中,我们将重点介绍Winston的日志包,这是一个极其通用的日志库,是基于NPM下载统计信息,可用于Node.js应用程序的日志记录解决方案。Winston的功能包括支持多个存储选项和日志级别,日志查询,甚至是内置的分析器。本教程将展示如何使用Winston记录我们创建的Node/Express应用程序。还将研究如何将Winston与另一个名为Morgan的Node.js的HTTP请求中间件记录器结合起来,以便将HTTP请求数据日志与其他信息进行整合。
姚啊姚
2018/07/25
5.6K0
Web应用程序限速方法
一般来说Web应用程序的开发者不太关心网络限速的问题。所以通常写的程序逻辑基本认为用户提交上来的数据速率越快越好;用户下载文件时,下载越快越好。但现实情况是服务器的带宽不是无限的,通常我们并不希望某一个用户的极速下载导致其它用户感觉此Web应用程序不可用。这样就带来了网络速率的需求。我在实际工作中大概总结出好几种限速办法,在这里记录以备忘。 ngx_http_core_module限制下载速率 最简单是直接使用ngx_http_core_module中的limit_rate、limit_rate_after
jeremyxu
2018/05/10
3.2K0
Web应用程序框架-Catharsis
Web应用程序框架-Catharsis是一个在codeplex上的项目,相关的文档说明比较详细. part I: http://www.codeproject.com/KB/applications/Catharsis.aspx -  New solution part II: http://www.codeproject.com/KB/applications/Catharsis_part2.aspx - Home page observation part III: http://www.code
张善友
2018/01/31
6740
什么是Web应用程序?
数以百万计的企业将互联网作为一个具有成本效益的通信渠道。它使他们能够与目标市场交换信息,并进行快速,安全的交易。但是,只有在企业能够捕获和存储所有必要数据,并有办法处理这些信息并将结果呈现给用户时,才有可能有效地参与。
知行软件EDI
2021/01/26
3K0
什么是Web应用程序?
python启动应用程序和终止应用程序
每天上班,工作需要,电脑上需要每天开机启动一些软件,下班时候,需要关掉一些软件。一个一个打开和关闭貌似是很繁琐的,于是乎,这个脚本产生了。
py3study
2020/01/07
2.4K0
如何使用CentOS 7上的Bottle Micro Framework部署Python Web应用程序
由于其灵活性和高级功能,Python是一种优秀的Web编程语言。Web框架可以使编程Web应用程序更加简单,因为它们连接了强大的Web界面所需的许多组件。
苏子晨
2018/09/26
2K0
如何使用简单的Python为数据科学家编写Web应用程序?
可以转到本地URL:localhost:8501在浏览器中,查看Streamlit应用程序的运行情况。开发人员提供了一些不错的演示,请花点时间并感觉一下工具的功能。
代码医生工作室
2019/11/14
2.9K0
Spring Boot保护Web应用程序
如果在类路径上添加了Spring Boot Security依赖项,则Spring Boot应用程序会自动为所有HTTP端点提供基本身份验证。端点“/”和“/home”不需要任何身份验证。所有其他端点都需要身份验证。
黑洞代码
2021/12/04
8010
Spring Boot保护Web应用程序
Golang语言写Web 应用程序
view.html <h1>www.golangweb.com</h1> <h1>{{.Title |html}}</h1> <div>{{printf "%s" .Body |html}}</div> <p>[<a href="/edit/{{.Title |html}}">edit</a>]</p> edit.html <h1>Editing {{.Title |html}}</h1> <form action="/save/{{.Title |html}}" method="PO
李海彬
2018/03/21
1K0
Golang语言写Web 应用程序
Go语言写Web 应用程序
介绍 涵盖内容: 为载入和保存方法创建一个数据结构体 引用http包来创建一个web应用 引用template包来处理HTML模板 引用regexp包来验证用户的输入 引用 闭包操作 可能涉及到的知识: 设计经验 明白基础的web技术(HTTP,HTML) 一些UNIX命令行知识 从这里开始 你要有一个可以运行Go语言的计算机或虚拟机,怎么样安装Go,请参考安装Go教程。首先创建一个目录,在目录下创建一个wiki.go文件,用你喜欢的编辑器打开并输入以下内容: package main import (
李海彬
2018/03/22
1K0
Go语言写Web 应用程序
Go语言写Web 应用程序
介绍 涵盖内容: 为载入和保存方法创建一个数据结构体 引用http包来创建一个web应用 引用template包来处理HTML模板 引用regexp包来验证用户的输入 引用 闭包操作 可能涉及到的知识: 设计经验 明白基础的web技术(HTTP,HTML) 一些UNIX命令行知识 从这里开始 你要有一个可以运行Go语言的计算机或虚拟机,怎么样安装Go,请参考安装Go教程。首先创建一个目录,在目录下创建一个wiki.go文件,用你喜欢的编辑器打开并输入以下内容: package main import (
李海彬
2018/03/22
7800
Go语言写Web 应用程序
Go语言写Web 应用程序
绍涵盖内容: 为载入和保存方法创建一个数据结构体 引用http包来创建一个web应用 引用template包来处理HTML模板 引用regexp包来验证用户的输入 引用 闭包操作 可能涉及到的知识: 设计经验 明白基础的web技术(HTTP,HTML) 一些UNIX命令行知识 从这里开始 你要有一个可以运行Go语言的计算机或虚拟机,怎么样安装Go,请参考安装Go教程。首先创建一个目录,在目录下创建一个wiki.go文件,用你喜欢的编辑器打开并输入以下内容: package main impo
李海彬
2018/03/19
8480
Go语言写Web 应用程序
Web应用程序如何创建 PDF
在一些场景下,用户都要求一些需要的数据能以 pdf 的格式下载下来。如电子商务商店,经常需要一些报表数据来分析当月的销售情况。
前端小智@大迁世界
2019/07/15
2.8K0
Blazor VS 传统Web应用程序
Blazor是Microsoft团队开发的单页面应用程序(SPA)框架,它是与React,Angular和Vue.js有相同之处,但是它使用的是C#而不是JavaScript。它将C#带入SPA领域,并向传统的Web应用程序框架(如ASP .NET Web窗体和ASP .NET Core MVC)挑战,来构建Web应用程序。本文讨论了SPA和传统Web应用程序之间的选择,并说明了服务器端渲染和客户端渲染之间的区别。
全球技术精选
2021/01/09
4.3K0
Blazor VS 传统Web应用程序

相似问题

Google应用程序引擎python日志记录不起作用

10

捕获google应用程序引擎日志记录输出

20

Azure应用程序日志记录不适用于我的Web应用程序

13

使用google应用程序引擎请求额外权限日志记录

14

Wildfly日志记录模块排除不适用于大型web应用程序

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文