我可以帮助我为我正在处理的网站设计数据库。我应该提一下,我是一个初学者,我过去从未设计过数据库。
好的,我的实现需要保存基于 5 个世界地区(欧盟、美国、韩国、中国、台湾)的拍卖数据。每次拍卖都用一个 ID 来标识,该 ID不是某个地区唯一的,而是该地区“领域”唯一的。最后的要求是:
一些统计数据:
我目前的计划是为每个区域使用一个数据库,总共 5 个。这些数据库中的每一个都将具有以下表格:
我正在讨论是否最好只有两个表并将 Scan、Historical 和 Sellers 表合并在一起,然后如果用户只想查看卖家的当前扫描数据或信息,它将从组合表中计算出来苍蝇。
由于我是新手,我可以找一个更有经验的人来看看,如果我忽略了任何东西,请告诉我。请记住,我对性能以及我的设计是否可以接受一无所知。
任何感兴趣的人都可以在此处查看我正在使用的 API 的文档http://blizzard.github.com/api-wow-docs/我将有计划任务来导入数据并将其插入到数据库中。
如果我不够清楚,请随时问我。
我会尝试一下这个。请注意,我刚刚列出了必需的字段。如果您想在这些表中存储其他数据,请随意添加它们(只要它们已标准化)。
虽然您确实声明将为每个区域使用不同的数据库,但我设计了这一点,以便它们都可以在一个数据库中工作。目前您可能只有 5 个区域,但这提供了轻松添加更多区域的灵活性:
table: region
regionID varchar(2)
regionName varchar(50)
Run Code Online (Sandbox Code Playgroud)
定义每个领域的数据。我使用了代理键(realmID),因为realmName 可能不是唯一的。这假设每个领域只能属于一个区域(regionID 需要是区域表上的 RegionID 的外键):
table: realm
realmID int
regionID varchar(2)
realmName varchar(50)
Run Code Online (Sandbox Code Playgroud)
定义每个用户(卖方/买方)的数据。我认为如果它有一个代理键(sellerID)会更好,因为卖家/买家的名字/姓氏组合可能并不完全唯一。请注意,您可能还需要一个地址表来存储多个:
table: user
userID int
userFirstName varchar(20)
userLastName varchar(20)
userEmail varchar(100)
Run Code Online (Sandbox Code Playgroud)
每次拍卖的数据。AuctionID 将是自动生成的 ID 和主键。您还需要在realmID(领域表上的realmID)和sellerID(用户表上的userID)上使用外键:
table: auction
auctionID int
realmID int
sellerID int
auctionPrice decimal
auctionStart datetime
Run Code Online (Sandbox Code Playgroud)
已完成的每次拍卖的数据,其外键位于buyerID(用户表上的userID)上:
table: auctionHistory
auctionID int
buyerID int
finalPrice decimal
auctionFinished datetime
Run Code Online (Sandbox Code Playgroud)
我认为您不需要一个单独的表来进行“扫描”。这将是对拍卖表中在拍卖历史表中没有匹配行的行的简单查询。希望这能帮助您入门。如果我错过/误读了任何内容,请告诉我。
归档时间: |
|
查看次数: |
922 次 |
最近记录: |