首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL数据库设计

MySQL数据库设计
EN

Database Administration用户
提问于 2011-12-31 03:57:34
回答 1查看 935关注 0票数 7

我可以帮我设计一个网站的数据库。我应该指出,我是一个初学者,我从来没有设计一个数据库在过去。

好的,我的实现需要持有基于5个世界区域(欧盟,美国,KR,CN,TW)的拍卖数据。每次拍卖都使用一个ID标识,该ID并不是某个区域独有的,而是该区域中的“领域”所特有的。最后所需经费如下:

  • 能够跟踪过去4-6个月拍卖的个别物品的历史市场价格。
  • 能够查看当前项目的拍卖。
  • 能够跟踪物品的卖家和他们的历史。
  • 能够在网站上创建配置文件。
  • 它不需要能够比较区域。

一些统计数据:

  • 每个区域都可以由240+域组成。
  • 每个领域都有大约20,000次拍卖,随时待售。

我目前的计划是为每个地区提供一个数据库,这样总共有5个数据库。这些数据库中的每一个都有以下表格:

  • 领域-保存有关区域内所有领域的信息。
  • 扫描-持有当前项目在一个地区出售的快照。按领域编制索引。
  • 历史-为每个地区保存4-6个月的历史。这将包括所看到的每一次拍卖。
  • 卖方-持有所有卖家在过去4-6个月看到的数据。

我正在辩论是否最好只有两个表,并将扫描表、历史表和Sellers表合并在一起,那么如果用户只想查看卖方当前的扫描数据或信息,就可以从合并的表中动态计算。

由于我是新来的,我可以和一个有更多经验的人一起看一看,如果我忽略了什么,就让我知道。请记住,我对性能一无所知,我所拥有的设计是否可以接受。

任何感兴趣的人都可以在这里看到我正在使用的API的文档,http://blizzard.github.com/api-wow-docs/,我将有一些预定的任务来导入数据并将其插入数据库。

如果我说得不够清楚,随时可以问我任何事。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-01-02 00:57:33

我来试一试。注意,我刚刚列出了必要的字段。如果您想要在这些表中存储其他数据,可以随意添加它们(只要它们是规范化的)。

虽然您确实声明将为每个区域使用不同的数据库,但我设计了这个数据库,以便它们都可以在一个数据库中工作。现在您可能只有5个区域,但这提供了轻松添加更多内容的灵活性:

代码语言:javascript
运行
复制
table: region
regionID        varchar(2)
regionName      varchar(50)

定义每个领域的数据。我使用了一个代理密钥(realmID),因为realmName可能不是唯一的。这假设每个领域只能属于一个区域(regionID需要是区域表上regionID的外键):

代码语言:javascript
运行
复制
table: realm
realmID         int
regionID        varchar(2)
realmName       varchar(50)

定义每个用户(卖方/买方)的数据。我决定如果它有一个代理密钥(sellerID)会更好,因为卖方/买家的第一个/姓氏组合可能不是完全唯一的。注意,您还可能希望一个address表存储多个:

代码语言:javascript
运行
复制
table: user
userID          int
userFirstName   varchar(20)
userLastName    varchar(20)
userEmail       varchar(100)

每次拍卖的数据。AuctionID将是一个自动生成的ID和主键.您还需要realmID (领域表上的realmID)和sellerID (用户表上的userID)上的外键:

代码语言:javascript
运行
复制
table: auction
auctionID       int
realmID         int
sellerID        int
auctionPrice    decimal
auctionStart    datetime

在buyerID上使用外键完成的每次拍卖的数据(用户表上的userID):

代码语言:javascript
运行
复制
table: auctionHistory
auctionID       int
buyerID         int
finalPrice      decimal
auctionFinished datetime

我不认为你需要一个单独的桌子来“扫描”。这将是对auctionHistory表中没有匹配行的拍卖表中行的简单查询。希望这能帮助你开始工作。如果我漏读了什么东西,请告诉我。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/9981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档