最好是MS SQL,我想从MySql切换。
所以我有这个有4个Excel文件的真棒客户。每个Excel文件代表Product Range
。
在每个Excel文件中,有3到8张表格。每个Sheet
代表Type
内的Product
Product Range
。
每张工作表,包含以下列:
PartNo
,Description
,QTY
,Price1
,Price2
,Price3
,Price4
......
(从未有过,也不会超过8个价格列。)
每张工作表可能包含大约5
到5000
行。
现在,我现在面临的问题是,不知道哪个是设置新数据库的最佳方式。
我目前拥有现有MySQL数据库的方式是每张工作表代表一个表。而已! (它必须快速“放在那里”,因此没有时间投入到为数据库设置正确的格式/结构。)
我最近发现我更有能力使用MSSQL
数据库,所以我想进行切换,第二个原因,主要原因是因为我想重组数据库所以我可以使事情更容易管理,并使我更容易从我的网站设置数据库搜索。
我根本不担心如何将所有内容插入到数据库中,就像我去年的业余时间一样,我编写了一个解析这些Excel文件,提取工作表并将其插入数据库的应用程序,可选设置。我担心如何我应该实际设置这个新数据库。
鉴于以上细节,最好的方法是什么?
非常感谢任何帮助。谢谢!
关于定价栏(示例),关于为什么的一些信息每张表中有多个价格列。:
价格栏1可能是镀锌单价,价格栏2可能是镀锌箱价格,价格栏3可能是不锈钢GR304箱价,而第4栏可能是不锈钢GR316单价。这些价格列对于每个产品系列都不同,但是,产品系列中的某些产品也可能包含一些相同的价格列。这就是为什么将每个产品作为一个单独的表格如此容易的原因。答案 0 :(得分:5)
我认为您正在寻求有关数据库设计的建议,对吧?
我永远不会用表示表格的每张表来设计数据库。每个概念实体我有一个表,在你的情况下,Product是显而易见的。
这是一个名为Products的表,其中包含您在上面提到的列。为了适应产品类型,我只需要一个Type列,指示任何特定产品所属的产品类型。我最终会在.Net中使用枚举类型来指定支持的不同类型。
嗯,那是我的五美分。希望它有所帮助。答案 1 :(得分:1)
一个简单的解决方案是将其拆分为3个表格。 ProductRange
和ProductType
通过外键关系链接到Product
表。
ProductRange
Id
RangeName
// Plus any other columns you need. eg description, startdate etc
ProductType
Id
ProductTypeName
Product
Id
ProductRangeId
ProductTypeId
PartNo
Description
Qty
Price1
// etc
如果您希望围绕价格获得更大的灵活性,则可以在Price
和Product
表之间创建另一个Price
表,其中many-to-many joining table。
Price
Id
Description
Price
ProductPrice
PriceId
ProductId
在这种情况下,您的Product
表格不会包含任何价格列。但您现在可以根据需要添加任意数量的价格类型,每个Product
可以有任意数量的价格。
答案 2 :(得分:0)
对于我来说,有多列价格似乎有点奇怪,除非Price1表示“业务费率”而Price2表示“消费者利率”或类似的东西。如果不同的价格适用于同一产品的不同功能,您可能需要考虑将它们分成不同的表格。例如:
产品表:KeyTable,ProductDescription ...
价格表:KeyTable,KeyProduct,PriceType,Price
或者,根据价格的计算方式,您可以从一个基本价格中处理各种其他价格。例如,如果商业利率价格将增加5%的基本价格,而消费者价格将增加基本价格的20%,这些可能不应存储在数据库中,因为它们可以很容易地计算出来是必需的。