微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

设计具有特定思维障碍的亲子关系结构的最佳方法

如何解决设计具有特定思维障碍的亲子关系结构的最佳方法

正如标题所说,我正在尝试以最佳方式创建适合我的 Asp.net 核心应用程序要求的适当结构。

该应用的主要要求是按时间顺序跟踪货件的状态。最相似的可能比较是邮局包裹的跟踪。此应用程序需要做类似的事情,但在将货物往返于其自己的仓库/仓库的业务方面。

仓库应该被视为货物需要从某处交付的地方

首先我需要记住的是,我可以从客户那里收到两种不同类型的订单:

  1. 交货单 - 在这种情况下,我们需要在我们的仓库中收集货物并将货物从仓库运输到客户指定的外部位置
  2. 收货单 - 我们需要组织货物从客户指定的外部位置到我们的仓库

在我们 IS 的 OLTP 模型中,这两个保存在两个结构几乎相同的不同表中。我们可以认为它们是相同的。跟踪应用不需要使它们不同的列。

考虑到这一点,我首先做的是创建通用表顺序(我将在这种情况下简化表结构)

*父母 创建表订单 (
ID INT IDENTITY(1,1) 主键, OrderKey NVARCHAR(32),
ClientID INT,
DocumentTypeID INT,(交付/接收)
CreateDate DATETIME,
...
)

表 ORDER 表由 OrderKey 和 ClientID 列的组合唯一定义。 (复合)

有些订单状态只能根据这两个表(Delivery/Receipt)提取

基于此,我制作了另一个表 OrderStatusHistory :

*父母身份 CREATE TABLE OrderStatusHistory(
订单 ID INT,
StatusID INT,--引用表状态
状态日期时间日期时间,
用户名 NVARCHAR(50),
外键(订单ID)参考订单(ID)
)

然后在 OrderStatusHistory 表中插入引用适当订单的状态。 (相同的状态可以重复,这就是为什么我没有创建 COMPOSITE KEY (OrderID,StatusID))

问题出在表格文档上。

*儿童 创建表文档(
ID INT IDENTITY(1,1) PRIMARY KEY,
DocumentKey INT,
OrderKey NVARCHAR(32),
..,外键(OrderKey,ClientID) 参考订单(OrderKey,ClientID) )

文档也有自己的状态(结构与订单状态相同)

为此我创建了新表:

*儿童状态 创建表 DocumentStatusHistory(
文档 ID INT,
外键(文档ID)参考文档(ID)
)

所以对于

中的每个组合

选择 *
从订单 o
LEFT OUTER JOIN Document d ON o.OrderKey = d.OrderKey AND o.ClientID = d.ClientID

我需要在某种下拉 html 元素中按时间顺序显示 PARENT(order) 状态和 CHILD(document) 状态的列表。

要记住的事情是一

  1. ORDER 可以有 0 到多个文档。
  2. 每天将多次安排作业以刷新应用程序数据,因此订单有可能从 0,1,2 文档开始但以更多的文档结束或保持不变。

总而言之,我需要建议如何以最佳方式设计数据库结构,以便它可以处理多次日常刷新(添加文档(插入),更新其中的某些字段(更新))。

这就是我碰壁的地方,基本上我想展示父母 + 孩子状态的结合,考虑到父母目前不需要有孩子,但以后可以得到一个/更多(或永远不会) ).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。