![在此处输入图像描述][2]我正在开发一个将创建三层结构的数据库。这个想法看起来像这样:
- 第一级:
Order
表- 首要的关键 -
OrderID
- 首要的关键 -
- 2级:
OrderlineItemHeader
表- 首要的关键 -
OrderID
- 首要的关键 -
OrderLineItemHeaderID
- 首要的关键 -
- 第三层:
OrderLineItem
表- 首要的关键 -
OrderLineItemHeaderID
- 首要的关键 -
OrderLineItemSequence
- 首要的关键 -
问题是它不允许我在第二级和第三级(OrderlineItemHeader.OrderLineItemHeaderID
to OrderLineItem.OrderLineItemHeaderId
)之间创建外键。我一直在阅读有关 hierarchyid 数据类型的信息,但问题是它们将它们关联到同一张表上。我展示的是主要列,但每个表都有五到十列所需的更多信息。
我正在使用 SQL Server 2008,关联它的程序是 VB.NET 4。我无法添加图表的图像,因为我是该网站的新手。
再次以食物为例进行解释:
您为在美国拥有所有餐厅的食品供应商下了大笔订单。
下达的订单包含该庞大订单列表的一般信息。
OrderID、OrderNO、OrderDate
现在Order有许多不同类型的食物,这是第二级。
比萨,鸡肉,肉,鱼。
您每个订购 1000 个,您需要知道什么时候会发生什么。
所以他们给你这些信息,你需要表明每个人在他们要吃饭的时候都会吃饭。
所以从比萨你将有 100 周二空运来。下周将有 500 个水路来。其余的在 2 周内通过陆路运输。
肉明天有 500 份,但由于他们没有更多的准备好,剩下的要延期交货。
所以所有这些信息都需要放在 tablkes 中,因此是 3 层模型