Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关系建议_Php_Database_Laravel - Fatal编程技术网

Php 关系建议

Php 关系建议,php,database,laravel,Php,Database,Laravel,希望得到一些意见,这是最好的方法 所以我正在为比赛创建一个系统,类似于足球/足球等运动的工作方式 现在我有一个赛季,一个赛季就有很多队,一个队就可以有很多队员 一个赛季会有很多比赛,其中所有的球队都会参加每一场比赛,但是不是每个球队的所有队员都会参加比赛 存储团队成员将参加比赛的最佳方式是什么 目前,我只想在竞赛表和成员之间建立一个支点,但这并不能说明成员是哪个团队的一部分,一个成员可以属于多个团队。你能要一张三向透视表吗 这是我当前的表结构 CREATE TABLE `seasons` (

希望得到一些意见,这是最好的方法

所以我正在为比赛创建一个系统,类似于足球/足球等运动的工作方式

现在我有一个赛季,一个赛季就有很多队,一个队就可以有很多队员

一个赛季会有很多比赛,其中所有的球队都会参加每一场比赛,但是不是每个球队的所有队员都会参加比赛

存储团队成员将参加比赛的最佳方式是什么

目前,我只想在竞赛表和成员之间建立一个支点,但这并不能说明成员是哪个团队的一部分,一个成员可以属于多个团队。你能要一张三向透视表吗

这是我当前的表结构

CREATE TABLE `seasons` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `archived` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `teams` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `season_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `teams_season_id_index` (`season_id`),
  CONSTRAINT `teams_season_id_foreign` FOREIGN KEY (`season_id`) REFERENCES `seasons` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `members` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `display_name` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `members_display_name_unique` (`display_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `members_teams` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `member_id` int(10) unsigned NOT NULL,
  `team_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `members_teams_member_id_index` (`member_id`),
  KEY `members_teams_team_id_index` (`team_id`),
  CONSTRAINT `members_teams_member_id_foreign` FOREIGN KEY (`member_id`) REFERENCES `members` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `members_teams_team_id_foreign` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `competitions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `start_at` datetime NOT NULL,
  `end_at` datetime NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `skill` int(11) NOT NULL,
  `season_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `competitions_season_id_index` (`season_id`),
  CONSTRAINT `competitions_season_id_foreign` FOREIGN KEY (`season_id`) REFERENCES `seasons` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我会有一个
players
表,以便将球员信息与任何球队信息分开。然后,你可能会有一个
竞赛\u玩家
表格或类似表格,其中有三个外键:团队ID、玩家ID和竞赛ID,这样你就可以看到谁在每场比赛中为哪支球队比赛。

我读了这个主题,立即想到,“这些问题的位置不对”:p