Соединительная таблица - это путь. Если новостная статья о более чем одной игре, то она вам нужна. Для обработки игр, которые еще не существуют, просто вставьте для них строку, включите всю информацию о ней, которую вы в данный момент знаете (возможно, из новостной статьи), и укажите столбец статуса, который помечает ее как еще не выпущенную. Вы можете отобразить эту игру как еще не выпущенную или слухи и т. Д.
настроить таблицы примерно так:
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, чтобы связать каждую игру со строкой News.
Если игра еще не опубликована, вы все равно можете связать ее с новостями, создав строку «Игры» со статусом «N» или «R» (или что-то в этом роде) и используя таблицу 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
если бы 01.01.2012 вы заглянули на News.NewsID = 543, вы бы увидели, что он ссылается на полную и рецензированную версию Games.GameID = 1234, хотя статья News.NewsID = 543 о " По слухам "грядущая версия God of War. И все это было сделано без каких-либо изменений в старых строках News или GameNews.