我对编程和数据库比较陌生。
我有一个带有“销售”表的 MySQL 数据库。该表列出了一个州的所有销售(即每条记录都是一个特定的销售),其中包含卖家名称和买家压缩字段。我想有另一个表“卖家”,其中包括卖家名称,还包括通过邮政编码定义卖家市场区域的字段——比如 50 多个邮政编码定义一个市场,卖家可以定义多个市场。
这些市场区域将用于未来的查询:显示特定市场区域的所有销售。
我从哪里开始考虑如何存储“市场区域”数据,然后将其用于将来的查询?
谢谢
对问题的第一条评论中的信息进行编码
1、“A店第一市场”
2、“A店第二市场”
3、“B店市场”
1, 1, 1
2, 1, 2
...
7, 1, 7
8, 1, 8
9, 2, 4
10, 2, 5
...
14, 2, 9
15, 2, 10
16, 3, 1
17, 3, 2
18, 3, 3
19, 3, 8
20, 3, 9
21, 3, 10
22, 3, 11
23, 3, 12
每个卖家在市场上的总销售额。请注意,由于一个邮政编码可以是多个市场的一部分,因此“总销售额”中所有值的总和可能大于“销售额”表中所有“金额”值的总和。
select Market.marketName, Seller.sellerName, sum(Sales.amount) as "Total Sales"
from Sales join Seller join SellerMarketLink join Market join MarketZipCode
on (Sales.sellerID = Seller.ID AND Seller.ID = SellerMarketLink.sellerID
AND SellerMarketLink.marketID = Market.ID
AND Market.ID = MarketZipCode.marketID
AND MarketZipCode.zipCode = Sales.buyerZipCode)
group by Market.ID, Market.marketName, Seller.ID, Seller.sellerName
order by Market.marketName, Seller.sellerName
我将在这里做以下假设:
导致以下结构...
销售表卖家| 买家zip
市场表市场| market_zipcodes_id
邮政编码表market_id | 邮政编码
希望有帮助...