我可以帮我设计一个网站的数据库。我应该指出,我是一个初学者,我从来没有设计一个数据库在过去。
好的,我的实现需要持有基于5个世界区域(欧盟,美国,KR,CN,TW)的拍卖数据。每次拍卖都使用一个ID标识,该ID并不是某个区域独有的,而是该区域中的“领域”所特有的。最后所需经费如下:
一些统计数据:
我目前的计划是为每个地区提供一个数据库,这样总共有5个数据库。这些数据库中的每一个都有以下表格:
我正在辩论是否最好只有两个表,并将扫描表、历史表和Sellers表合并在一起,那么如果用户只想查看卖方当前的扫描数据或信息,就可以从合并的表中动态计算。
由于我是新来的,我可以和一个有更多经验的人一起看一看,如果我忽略了什么,就让我知道。请记住,我对性能一无所知,我所拥有的设计是否可以接受。
任何感兴趣的人都可以在这里看到我正在使用的API的文档,http://blizzard.github.com/api-wow-docs/,我将有一些预定的任务来导入数据并将其插入数据库。
如果我说得不够清楚,随时可以问我任何事。
发布于 2012-01-02 00:57:33
我来试一试。注意,我刚刚列出了必要的字段。如果您想要在这些表中存储其他数据,可以随意添加它们(只要它们是规范化的)。
虽然您确实声明将为每个区域使用不同的数据库,但我设计了这个数据库,以便它们都可以在一个数据库中工作。现在您可能只有5个区域,但这提供了轻松添加更多内容的灵活性:
table: region
regionID varchar(2)
regionName varchar(50)
定义每个领域的数据。我使用了一个代理密钥(realmID),因为realmName可能不是唯一的。这假设每个领域只能属于一个区域(regionID需要是区域表上regionID的外键):
table: realm
realmID int
regionID varchar(2)
realmName varchar(50)
定义每个用户(卖方/买方)的数据。我决定如果它有一个代理密钥(sellerID)会更好,因为卖方/买家的第一个/姓氏组合可能不是完全唯一的。注意,您还可能希望一个address表存储多个:
table: user
userID int
userFirstName varchar(20)
userLastName varchar(20)
userEmail varchar(100)
每次拍卖的数据。AuctionID将是一个自动生成的ID和主键.您还需要realmID (领域表上的realmID)和sellerID (用户表上的userID)上的外键:
table: auction
auctionID int
realmID int
sellerID int
auctionPrice decimal
auctionStart datetime
在buyerID上使用外键完成的每次拍卖的数据(用户表上的userID):
table: auctionHistory
auctionID int
buyerID int
finalPrice decimal
auctionFinished datetime
我不认为你需要一个单独的桌子来“扫描”。这将是对auctionHistory表中没有匹配行的拍卖表中行的简单查询。希望这能帮助你开始工作。如果我漏读了什么东西,请告诉我。
https://dba.stackexchange.com/questions/9981
复制相似问题