- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个游戏表,其中包含有关游戏的数据。然后是另一个表,其中包含有关新闻的数据。
到目前为止一切顺利。
首先,我考虑为 game_news 创建一个联结表,这样我就可以将新闻与游戏联系起来。
当游戏存在时,这种方式按预期工作。因此,每当我插入新闻时,我都可以使用联结表将其与游戏相关联。
然而,有些情况下,有关于游戏的新闻,但游戏尚未发布且不存在。
所以我的问题是;在创建游戏记录时,有没有办法将这些新闻与特定游戏相关联。
最好的方法是什么?有什么想法吗?
最佳答案
联结表是必经之路。如果一篇新闻文章是关于不止一款游戏的,那么你就需要它。要处理尚不存在的游戏,只需为它们插入一行,包括您当前了解的所有信息(可能来自新闻文章),并在状态栏中标记它尚未发布。您可以将此游戏显示为尚未发布或谣言等。
像这样设置表格:
Games
GameID int not null auto increment PK
GameStatus char(1) not null "P"=published, "N"=not released yet, "R"=game is only a rumor
GameReleaseDate date null
GameName varchar(...) not null
GameDescription...
...
News
NewsID int not null auto increment PK
NewsTitle varchar(...) not null
...
GameNews
GameNewsID int auto increment PK
GameID int FK to Games.GameID
NewsID int FK to News.NewsID
通过此设置,您可以拥有多个与单个新闻项目相关的游戏。只需插入所有正确的 GameNews 行即可将每个游戏链接到新闻行。
如果游戏尚未发布,您仍然可以通过创建状态为“N”或“R”(或类似名称)的 Games 行并使用 GameNews 表将其链接到新闻,就像您在已发布的游戏。您可以使用尽可能多的信息填充游戏中的所有字段,并在您发现更多信息时更新它。最后,您将在游戏行中获得完整的游戏信息(游戏发布后),并且它会链接到所有新闻行,即使它只是新闻中的谣言。
为了让您了解我在说什么,下面是一个“传言”游戏的数据随时间变化的示例(这是一个简化的示例,每个新闻行没有多个游戏):
data as of 1/1/2010
Games GameID GameStatus GameReleaseDate GameName
1234 "R" 1/1/2012 "God of War 4"
News NewsID NewsTitle
543 "Future Of Games"
GameNews GameNewsID GameID NewsID
768 1234 543
data as of 4/1/2010
Games GameID GameStatus GameReleaseDate GameName
1234 "R" 1/1/2012 "God of War 4"
News NewsID NewsTitle
543 "Future Of Games"
544 "Interview with John Hight"
GameNews GameNewsID GameID NewsID
768 1234 543
769 1234 544
data as of 11/20/2010
Games GameID GameStatus GameReleaseDate GameName
1234 "N" 12/31/2011 "God of War IV"
News NewsID NewsTitle
543 "Future Of Games"
544 "Interview with John Hight"
545 "God of War Expected Next Year"
GameNews GameNewsID GameID NewsID
768 1234 543
769 1234 544
770 1234 545
data as of 8/15/2011
Games GameID GameStatus GameReleaseDate GameName
1234 "N" 12/01/2011 "God of War IV"
News NewsID NewsTitle
543 "Future Of Games"
544 "Interview with John Hight"
545 "God of War Expected Next Year"
546 "Retailers Get Ready For New Games"
GameNews GameNewsID GameID NewsID
768 1234 543
769 1234 544
770 1234 545
771 1234 546
data as of 1/1/2012
Games GameID GameStatus GameReleaseDate GameName
1234 "P" 12/01/2011 "God of War IV"
News NewsID NewsTitle
543 "Future Of Games"
544 "Interview with John Hight"
545 "God of War Expected Next Year"
546 "Retailers Get Ready For New Games"
547 "God of War IV Review"
GameNews GameNewsID GameID NewsID
768 1234 543
769 1234 544
770 1234 545
771 1234 546
772 1234 547
如果您在 2012 年 1 月 1 日查看 News.NewsID=543,您会看到它链接到完整且经过审核的 Games.GameID=1234,即使 News.NewsID=543 文章是关于“传闻”即将推出的战神版本。所有这一切都是在不对旧新闻或游戏新闻行进行任何更改的情况下完成的。
关于sql - 如何将一个表与另一个表关联起来以备将来记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649763/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!