gpt4 book ai didi

sql - 具有不同数据的数据库对象

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:33 24 4
gpt4 key购买 nike

我正在 ASP.NET MVC 中制作一个网页,用于比较不同商店的价格。

我有一个一对多的产品和商店,SHOP 有一个 PRODUCTPRODUCT 有很多 SHOPs,问题是商品一样但是价格不一样。

例子:

3 shops sells one fork.
Shop 1: $10
Shop 2: $20
Shop 3: $30

是为每个商店制作新产品的最佳方式还是我可以更改价格?

最佳答案

理想情况下,您想要的是 ShopProduct 实体之间的多对多关系:

public class Shop
{
public int ShopId {get; set;}
public virtual ICollection<ShopProduct> ShopProducts {get; set;}
}

public class Product
{
public int ProductId {get; set;}
public string Name {get; set;}
public virtual ICollection<ShopProduct> ShopProducts {get; set;}
}

public class ShopProduct
{
public int ProductId {get; set;}
public int ShopId {get; set;}
public virtual Product Product {get; set;}
public virtual Shop Shop {get; set;}
public decimal Price {get; set;}
}

通过上面的例子,每个Shop可以有多个Product并且每个Product可以存在于多个Shops。在每个 Shop-Product 组合的连接处,您指定价格。让我举个例子:

ID | Shop Name
--------------
1 Shop 1
2 Shop 2
3 Shop 3

ID | Product Name
-----------------
1 Fork

现在我们可以这样做(上面的示例):

ProductId | ShopId | Price
----------------------------------------------------
1 1 10.00 <- fork for Shop 1 @ $10
1 2 20.00 <- fork for Shop 2 @ $20
1 3 30.00 <- fork for Shop 3 @ $30

您现在可以根据需要添加任意数量的商店和产品,并将它们链接到多对多表格中。像这样的表在数据库术语中称为连接表

关于sql - 具有不同数据的数据库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com