首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加列还是为ORDER创建新表?

添加列还是为ORDER创建新表?
EN

Stack Overflow用户
提问于 2013-07-29 19:53:22
回答 3查看 53关注 0票数 0

我们有一个游戏的表,每个游戏只添加一次在这个表中,但其中许多有几个平台,如PC,PS3,X360和.。我们希望为不同平台的游戏添加不同的发布日期,例如驻留邪恶6,它首先在PS3和X360上发布,然后在PC上发布另一个日期。

此外,我们有不同类型的发布日期,如确切日期,如2012年10月29日,或Q1,Q2,Q3,Q4 2014,或TBA 2014或仅TBA .

现在,我的问题是:

是否应该像添加平台的数量一样多地添加字段,并将发布日期放在其中,并通过最少()和最大()来选择所有这些?

还是单独制作有游戏标识、发布日期和平台的表?

对于数据库来说,哪一个更容易,哪一个更轻?

请注意,填充游戏表的可能性是每年200场。

还请注意,如果这个游戏在不同的平台上发布两次,我们希望在我们即将发布的页面中显示两次。并且只在同一天为所有平台显示一次if发布。

这是我的第一个模型:

//=. rdate_pc .

\x{e76f}\x{e76f}{##**$$}\x{e76f}\x{e76f} xbox360,

这是我的第二个模型:

=.

\x{e76f}\x{e76f} Q4 \x{e76f}\x{e76f} 20140000 \x{e76f}\x{e76f}

\x{e76f}\x{e76f} ps3 20140400

那么哪一个更好?

EN

回答 3

Stack Overflow用户

发布于 2013-07-29 19:59:06

通常,您希望将一个条目限制为一个字段(不将Xbox、PS3作为单个条目)。为此,您应该创建另一个将平台链接到游戏的表;该平台的发布日期也可以保存在这里。您将有类似于您的第二个表,另一个表按ID列出了所有的游戏。

另外,由于您说dB每年将有大约200场比赛,所以可能值得研究一下NoSQL数据库,例如Mongo。这些数据库允许您拥有与表中某些条目相关联的字段,但不允许其他字段,并允许您基于此进行筛选。

还请注意,我不相信SQL LEASTGREATEST查询将不能处理与Q4之类的日期混合的日期。

票数 0
EN

Stack Overflow用户

发布于 2013-07-29 20:02:37

第二种模式将更加灵活。首先,对于第一个模型,如果添加了更多的平台,则需要为添加的每个新平台添加另一个rdate_*字段。

票数 0
EN

Stack Overflow用户

发布于 2013-07-29 20:04:21

我将使用至少三个表的数据库结构,如下所示:

代码语言:javascript
复制
Games
(
Id
Name
--any other relevant information, such as ESRB rating that will apply
)

Platforms
(
Id
Name
--any other relevant information
)

Game_Platforms
(
GameId
PlatformId
ReleaseDate
--any other relevant information
)

正如其他海报所指出的,这允许在添加新平台、更改发布日期(或完全取消)时具有更大的灵活性。

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

https://stackoverflow.com/questions/17932977

复制
相关文章

相似问题

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