Php 外键空

Php 外键空,php,mysql,key,workbench,Php,Mysql,Key,Workbench,在那之前我做过调查,但不确定我是否做得一切都好 我正在使用MySQL Workbench创建和管理我的数据库,本周,我创建了一个新的数据库 这是一个屏幕: 我认为不好的是我的桌面游戏和桌面文章/桌面新闻之间的关系 我想能够创建一个新闻或文章有或没有一个链接的游戏 不是在PHP端,而是仅在MySQL中 我从来没有做过,现在我需要它 以下是表的MySQL: 一切都好还是不好?不要将t\u games\u id\u games放在t\u文章中,使用单独的关系表: CREATE TABLE t_ar

在那之前我做过调查,但不确定我是否做得一切都好

我正在使用MySQL Workbench创建和管理我的数据库,本周,我创建了一个新的数据库

这是一个屏幕:

我认为不好的是我的桌面游戏和桌面文章/桌面新闻之间的关系

我想能够创建一个新闻或文章有或没有一个链接的游戏

不是在PHP端,而是仅在MySQL中

我从来没有做过,现在我需要它

以下是表的MySQL:


一切都好还是不好?

不要将
t\u games\u id\u games
放在
t\u文章
中,使用单独的关系表:

CREATE TABLE t_article_game (
    t_games_id_games INT NOT NULL,
    t_articles_id_article INT NOT NULL,
    PRIMARY KEY (t_games_id_games, t_articles_id_article),
    FOREIGN KEY (t_games_id_games) REFERENCES t_games (id_games),
    FOREIGN KEY (t_articles_id_articles) REFERENCS t_articles (id_articles)
);

这允许你有多对多的关系,如果你想,以及允许文章不引用任何游戏。但是它确保了当你创建一个关系时,外键约束被保持了——你不能把一篇文章链接到一个不存在的游戏。

你考虑了几篇关于游戏的文章吗?如果你想创建一篇没有链接游戏的文章,那么就去掉<代码> FKYTTXORYSL TyGAMES1约束。对于
rk\u t\u新游戏1
也是一样。外键不能为空。@IlyaBursov我没有想到这一点,但是是的,有了Barmar的解决方案,这是可能的,也是个好主意!哦,是的,谢谢你!我不知道为什么我不想这么做!这是一个更好的解决方案,如果需要,我可以将文章/新闻链接到几个游戏。再次感谢你!
CREATE TABLE t_article_game (
    t_games_id_games INT NOT NULL,
    t_articles_id_article INT NOT NULL,
    PRIMARY KEY (t_games_id_games, t_articles_id_article),
    FOREIGN KEY (t_games_id_games) REFERENCES t_games (id_games),
    FOREIGN KEY (t_articles_id_articles) REFERENCS t_articles (id_articles)
);