- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
9 个月前关闭。
Improve this question
问题
考虑这些数据库表:
Product_Name, Product_Description, Product_Size, Product_Cost, Product_Unit
订单有列:
Order_number, Order_Total, Order_Status, Order_Payment_Status, Order_UserId (Fk of user table), Order_date
订单详情有列:
OrderDetails_OrderId(Fk of Order table), OrderDetails_ProductId (Fk of Product table), OrderDetails_Quantity
用户有列:
User_Name, User_Phone (unique), User_Email (unique), User_Address
考虑要放置、包装、交付、取消、关闭的订单状态。
User_Name | User_Phone | User_Email | User_Address | Version/Timestamp
abc | 123 | abc@email.com |someaddres | v1
abc | 234 | abc@email.com |someaddress | v2
new mapping table
version | order_id
v1 | o3
此解决方案的缺点是 :
new table
order_id | JsonOfUser | JsonOfProductDetails | ...
o3 | {"name":"abc",...} | ... |
此解决方案的缺点 :
User_Common
User_Closed
对于订单O3,在关闭时,user_common 的所有详细信息将被复制到User_closed 中,并且具有User_common 表外键的订单O3 将更改为User_Closed 表的外键。现在 o3 中的任何更改都将有效地覆盖旧数据,并且所有其他未结/已下订单仍然可以从 User_common 获取更新信息。
最佳答案
使用具有 的方法用户 table 为 valid_since 列添加另一列。将“永不删除”策略应用于 用户 s。
如果您测量性能问题,请为 添加持久化/物化(内存中) View 。用户 只显示最新地址 - 使用它来获取新下订单的 user_id 并加入以显示打开的订单。将使用外键的现有订单连接到 用户 大多不关心实际的 user_id 有多少(简化)。
在 上使用 after_insert 触发器用户 将新的 user_id 传播到 的所有条目订购 应反射(reflect)这些更改的表,忽略该更新的已关闭订单。就订单而言,这将是一个相当小的更新 - 允许一个用户拥有多少个未结订单? 10? 20? 50?
定期清理用户数据,以防他们更改但从不订购任何东西 - 那些 用户 条目可能会被删除。
您可以通过这种方式确保数据库级别的完整性 - 如果您想为每天更改其详细信息超过三次的用户添加报告(或限制这些更改前端明智)。
您的大多数用户字段也应该是 1:N 关系 - 我至少有 3 个电话号码,并且可能使用 2 个地址(居住地址 + 送货地址),并且给定了 1 封电子邮件。
将这些更改为拥有“事件”的表可能会消除创建完整用户副本的需要。基于业务需要,用于运送物品的“地址”可能值得记住,而不是用于订购的手机号码或用于发送确认的电子邮件,但这是一个商业决策。
除非您有一个非常活跃的商店,拥有数百万个不同的用户,每个用户订购数百个订单并且每个月更改他们的详细信息 20 次,否则您在使用当前最先进的数据库系统时不会遇到任何问题。在我看来,这更像是一个基于实际需求的思想实验?
关于database - 如何维护可与关系同时编辑的同一实体的两个版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64065166/
都是整数,但一直报错 "Only assignment, call, increment, decrement, await, and new object expressions can be us
我有以下情况:一个“对话”实体/表,它有多个关联的标签。Tag 也是一个实体/表 - key/id 是 tagName(一个字符串)。 在客户端 (javascript),我在处理标签时使用字符串数组
我想通过 maven java 源代码生成器自动生成 java 源代码。我想通过查看一个大实体 xml 文件来创建实体类,该文件将包含系统中的所有实体和实体关系。据我搜索,目前maven中没有这样的插
我有一段时间有这个疑问,有人说 EJB 3.0 中没有所谓的实体 bean。有没有可能这样说,EJB 3.0 使用 JPA 来持久化数据并且没有对以前版本(EJB 2.1)中的实体 bean 进行增强
我观看了关于 Core Data 的 2016 WWDC 视频并查看了各种教程。我见过使用 Core Data Framework 创建对象以持久保存到 managedObjectContext 中的
实体(entites) 用于定义引用普通文本或特殊字符的快捷方式的变量,可在内部或外部进行声明 实体引用是对实体的引用 声明一个内部实体 语法: <!ENTITY 实体名称 "
This page建议 !ENTITY: If you want to avoid duplication, consider using XML entities (for example, [ ]
我正在努力解决这个问题:如何判断一个概念是聚合根还是只是一个实体(属于 AR 的一部分)? : 他们都有 ID 它们都是由实体或值对象组成 也许如果我需要引用其他 AR 中的实体,那么我需要将其设为
我使用 Symfony2 和 Doctrine,我有一个关于实体的问题。 出于性能方面的考虑,我想知道是否可以在不进行所有关联的情况下使用实体? 目前,我还没有找到另一种方法来创建继承带有关联的类的模
我已经尝试在 HTML 中包含以下代码,用于附加文件符号。但它显示一个空的白框。 📎 📎 📎 是否有替代的 HTML 附加文件符号实体? 如果没有,我们可以手动创建
我在 grails 中有一个域类......我如何让 gorm 在创建数据库时忽略这个实体?就别管它了。 最佳答案 如果我理解,你不想从域类创建表?如果是,请在域类中使用此代码: static map
我正在努力解决这个问题:如何判断一个概念是聚合根还是只是一个实体(属于 AR 的一部分)? : 他们都有 ID 它们都是由实体或值对象组成 也许如果我需要引用其他 AR 中的实体,那么我需要将其设为
我已经尝试在 HTML 中包含以下代码,用于附加文件符号。但它显示一个空的白框。 📎 📎 📎 是否有替代的 HTML 附加文件符号实体? 如果没有,我们可以手动创建
如何在我的实体中以 14-04-2017 格式存储日期? 但我必须从字符串中解析它。 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-
我需要从两个连接表中获取数据。数据集是什么类型?我是否需要创建一个包含这两个表中的属性的类以用于数据集类型,或者我可以使用实体模式中的类型。我如何修改我的方法才能正常工作? public static
好的,我们正在尝试建立一个中央站点来查看来自销售我们产品的多个供应商的数据。这些多个供应商使用不同的销售系统(确切地说是两个不同的系统),因此每个数据库看起来完全不同。我们与他们的数据库同步,因此数据
我是 backbone 的新手。但是当我研究模型实体时,我不明白一些事情。如果我们可以像 java 或 C# 这样的标准语言一样定义模型属性,那就太好了。有没有可能是这样的。所以我的想法是这样的: M
我想获取存储在可绘制的 xml 文件中的形状的颜色。 我来到了将 Drawable 存储在 Drawable 变量中的步骤,所以,现在我想获取形状的颜色(纯色标签)。 有什么建议吗? 最佳答案 Gra
实体是直接映射到我们的数据库(我们用于 Hibernate)的类。 在调用 DAO 之前,我们的服务类包含这些实体的业务逻辑。 我们还有命令对象,它们是与特定 View 相关的 POJO。有人告诉我实
在我的应用程序中,我需要显示不同存储过程返回的记录列表。每个存储过程返回不同类型的记录(即列数和列类型不同)。 我最初的想法是为每种类型的记录创建一个类,并创建一个函数来执行相应的存储过程并返回 Li
我是一名优秀的程序员,十分优秀!