编辑 1:最后的故事示例
多年前,我们创建了表格来计算我们的盒子里有多少产品。
有两个简单的表:
product (
code VARCHAR(16) PK,
length INT,
width INT,
height INT
)
box (
pkid INT IDENTITY(1,1),
barcode varchar(18),
product_code VARCHAR(16) FK,
quantity INT
)
还有两个相关的类:
public struct Product
{
public string Code { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Heigth { get; set; }
}
public struct Box
{
public int Id { get; set; }
public string BarCode { get; set; }
public Product Product { get; set; }
public int Quantity { get; set; }
}
多年后,我们需要将多个不同的产品放在同一个盒子里,所以我们现在需要这个:
product (
code VARCHAR(16) PK,
length INT,
width INT,
height INT
)
-- box changed
box (
pkid INT IDENTITY(1,1),
barcode varchar(18)
)
-- stock created
stock (
box_pkid INT M-PK FK,
product_code VARCHAR(16) M-PK FK,
quantity INT
)
和这个:
public struct Product
{
public string Code { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Heigth { get; set; }
}
public struct Box
{
public int Id { get; set; }
public string BarCode { get; set; }
public Dictionary<Product, int> Content { get; set; } // <-- this changed
public int Quantity { get; set; }
}
但多年后,我们有很多代码,可能在一些黑暗的地方重复,是离开合作者留下的。我是实习生,所以请教一下我以后的经历,以免以后遇到这种情况。
更新我们的架构并保持数据完整性安全的解决方案是什么?即使数据库中有数百万行?
示例: 2014 年,我们需要在一个盒子中存放 10 本罗密欧与朱丽叶书籍。如果我们有一些哈姆雷特的书,我们就会把它们放在另一个盒子里。罗密欧与朱丽叶的所有 10本书都是“相同”的产品(相同的封面、相同的内容、相同的参考文献)。
今天,我们想将不同的莎士比亚书籍存放在同一个盒子里。或者可能是不同的爱情书籍。甚至罗密欧与朱丽叶的书籍和小雕像?将不同的产品放在一起:我们应该改变box table和Box class,不是吗?
慕森卡
小怪兽爱吃肉
相关分类