如何创建用于在SQL后端中的多个表中输入复杂的相关数据的结构

时间:2012-08-31 14:28:25

标签: sql database database-design

我正在建立一个处理服务和硬件产品的订单和发票系统。 表格结构的一部分,简化,如下所示。 (现实生活是一个数量级的表格):

我想从标准订单列表中选择一个订单,即与公司规模相关的订单,并在相应的表格中创建与此标准表格相关的所有各种产品的订单表格。关系。 例如:我为5人的小公司选择了计算机和配件的标准订单。订单已创建,OrderItem行也链接到Order和Product。

客户(派对的子集)

Customer_ID (PK, FK to Party)

CustomerName
...

顺序

Order_ID (PK)
Customer_ID (FK to Customer)
OrderDate
OrderNumber
...

OrderItem的

Order_ID (PK, FK to Order)
Product_ID (PK, FK to Product)
Amount
...

产品

Product_ID (PK)
ProductName
Price
Info
...

这个例子很容易编程,但是当有十个相互关联的表需要更新时 - 我不确定什么是最好的策略。

最好从以下位置获取生产表中的数据:

1)一组模板表,或多或少作为生产数据的镜像,与它们相同的方式相互关联,但只包含广义数据(标准),没有cols作为日期等?

2)将模板存储在生产数据表中,使用额外的字段来表示它们?这可以在这些行中创建大量空cols,例如关于日期等。

3)使用其他一些编程方法并使用它。就像一个表调用不同的存储过程,具体取决于选择的模板!?

4)???

希望这是可以理解的。

1 个答案:

答案 0 :(得分:0)

我认为你正在以错误的方式思考问题。你应该做的是 创建满足小型企业客户需求的产品包。

因此,您可以在产品之间添加自联接表

产品捆绑表

Product-ID1 integer not null引用product(product_id) Product_ID2 integer not null check(!= Product-ID1)引用product(product_id)

主键(Product-ID1,Product_ID2) qty integer not null check(> 0) ....

现在,您可以创建一个产品表条目,该条目引用其组成产品的产品表