MySQL DB结构,需要澄清

时间:2012-03-14 19:32:11

标签: php mysql database schema

我正在设计一个网站,您可以在其中上传带有描述等的游戏,并存储他们的评级。我是唯一可以提供评级的人,因此我不需要第二个DB。

但是,会有无限轮次的竞争,所以我想将Round#存储在DataBase的一列中。另一个要求是每一轮都有它自己的信息,所以我要用Round_Number创建第二个表,然后是其他字段,如描述,截止日期等。

所以这是我目前的数据库架构理念:

Entries ( Comp #, Entry # AutoInc, Password, 
    Entry Date, Author Contact, Description, Screenshot, Website )
Competitions ( Comp #, Theme, Entries, Start Date, Finish Date, Prize )

所以参赛作品可以在Comp#上加入比赛,以获得有关其比赛的额外信息。这些看起来效率最高吗?没有帐户系统(或用户表),每个条目只有自己的密码进行编辑。

1 个答案:

答案 0 :(得分:0)

我会进一步思考这个问题。您可能会为不同的参赛作品和比赛提供不同的屏幕截图。您也可以定义关系模式并添加用户帐户以进行身份​​验证。定义三个表:

CREATE TABLE USERS_T ( account_id number, username varchar, password data_type, author varchar, .... )

CREATE TABLE COMPETITIONS_T ( comp_id number, description varchar, theme varchar, #entries number- not needed, just count by id in ENTRIES_T table start_date date, finish_date date, prize varchar, ... )

CREATE TABLE ENTRIES_T ( account_id number, comp_id number, entry_date date, descr varchar, screenshot blob, website varchar, ... )

  

每场比赛可以有多个参赛作品,但每个参赛作品只能参加一场比赛。

在ENTRIES_T表上添加主键:PRIMARY KEY (account_id, comp_id)

你甚至可以更进一步,定义主题表,评论表等。我想你会明白这个想法。希望这可以帮助。古德勒克!