数据库结构和查询

时间:2015-03-27 03:11:48

标签: database database-design data-structures data-modeling

试图找出如何从我现在拥有的结构改变结构:

tblHaulLogs

intLogID
intHaulType
intSerial
intOriginSource
intOrigin
intDestinationSource
intDestination
dtmHaulDate
ccyLogPay
intHauler
txtLogNotes
intInvoiceID

在此表中,我正在做的是使用源和目标源字段来确定源和目标的fk来自哪个表。这对我来说非常不对。

tblHaulTypes

intHaulTypeID
chrHaulType
intOriginSourceType
intDestinationSourceType

运输类型表中的数据:

LOT, 1, 1
DEL, 1, 2
RPO, 2, 1

现在让我解释一下: 第一种类型发生在物品从销售批次转到另一个销售批次时。 第二种类型发生在物品从销售批次转移到客户(销售交付)时。 第三种类型发生在物品从客户返回销售批次时。

然后可以转售/退回/转售/退回物品(租赁到自己的系统)。 现在,我遇到了以下问题:

  1. An Haul Log的起源始终是最后一步的目的地。因此我认为原点字段是多余的。然而,它是最后一次搬家的目的地与新搬家的目的地之间的关系,它定义了托运人得到的报酬以及搬运的类型。
  2. 换句话说,即使第一种类型和第三种类型在技术上具有相同的字段,由于先前的移动类型,移动的类型也不相同。我需要做什么?我完全不知道结构应该是什么?

    1. 根据这些数据我需要回答的问题是: 我的销售批次中有多少项是新库存(从未销售过)。 我有多少物品已被售出并退回(无关紧要多少次)。

1 个答案:

答案 0 :(得分:0)

我猜测各个字段和表格之间的关系。

您的 tblHaulTypes 表看起来不错。

intHaulTypeID
chrHaulType
intOriginSourceType
intDestinationSourceType

您错过了从供应商到您的拍品交货的运输类型。

必须有一些表格列出你的地段。我称之为 tblHaulLot

intLotNumber
txtLotName
...

我制作一个 tblHaulTransaction 表,如下所示。

intTransactionID
intHaulTypeID
intHauler
intOriginOrganizationID
intDestinationOrganizationID
intOriginLot      (null if origin is supplier)
intDestinationLot (null if destination is customer)
dtmHaulDate
txtLogNotes

现在,我们需要 tblOrganization

intOrganizationID
txtOrganizationName
txtOrganizationAddress
...

ID 0的组织是您的组织。供应商和客户将填补表格的其余部分。

我制作了一张如下所示的 tblHaulInvoice 表。

intInvoiceID
intTransactionID
ccyTransactionPay
dtmDateInvoiced
AmountInvoiced

发票金额(和支付的金额)必须在某些表格中计算。我不知道ccy代表什么,而且我不知道你的小写(金钱)字段的3个字母代码。

  

我的销售批次中有多少项目是新库存(从未销售过)。我有多少物品已售出并退回(无数次)。

您的数据模型中没有任何一种库存表。我需要了解更多关于您的业务的信息,以创建一个或多个库存表。