我正在用C#编写代码。 它有两种类型的用户:分销商和客户。
客户可以查看所有经销商的所有产品,并可以通过提及他们需要的每种产品的数量来选择它们。所以他们可以列出订单。 经销商可以查看从所有客户收到的订单列表。该表应包含“经销商ID”和“客户ID”以及“已订购产品列表”及其已订购的成本和数量。 但我不知道将这些数据保存到单个表中。我希望每行提到从特殊客户到特殊经销商的单个订单列表。
我可以拥有3D表格或数组,还是有更好更有效的方式?
答案 0 :(得分:1)
根据您提供的信息,您似乎需要这样的数据模型:
Distributor
Id
Name
Client
Id
Name
Product
Id
DistributorId (foreign key)
Order
Id
ProductId (foreign key)
ClientId (foreign key)
Number
通过这种方式,您可以存储来自客户的产品订单,并通过选择所有与所选分销商关联的productId的订单,确保经销商查看自己产品的订单。
答案 1 :(得分:1)
有可能做你想做的事吗?是。
你应该吗?否。我的意思是,假设你设置了你的桌子。分发器的列,客户端的列和订单列表的列(让我们使用XML作为示例):
DistID ClientID Orders
1 1 <item>A</item><item>B</item><item>C</item>
2 1 <item>D</item><item>C</item>
2 2 <item>E</item><item>A</item><item>F</item><item>G</item>
...那么你会遇到什么问题?首先,想象一下尝试添加或删除订单。您必须阅读完整的订单列表,进行更改,然后将其全部写回SQL。这是一个很大的开销,特别是如果你的'列表'有很多项目,或者你正在做大量的订单添加/删除。
更糟糕的是,如果您需要找到任何订购'B'的人,会发生什么?您将不得不对该列进行全文扫描 - 没有索引搜索,没有优化,没有 - 只是为了找到匹配的项目。
这是我的建议 - 看看“ SQL规范化” - 基本上,指导如何高效地组织SQL数据。以下是一些不错的首发地点: