Zaprojektowałem dwie tabele - kraje oraz kontynenty
Każdy kraj może być w wielu językach oraz każdy kontynent może być w wielu językach, jednak umieszczone jest tłumaczenie się pojawiła się dodatkowa kolumna jako numer kraju oraz numer kontynentu
Czy jest to zrobione poprawnie?
CREATE TABLE `continents` (
`id` int(11) NOT NULL,
`language` int(11) NOT NULL,
`continent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`continent_number` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`language`) REFERENCES `languages`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `continents` (`id`, `language`,`continent_number`, `continent` ) VALUES
(1, 1, 1,'Europa'),
(2, 1, 2,'Azja'),
(3, 1, 3,'Ameryka Północna'),
(4, 1, 4,'Ameryka Południowa'),
(5, 1, 5,'Afryka'),
(6, 1, 6,'Australia'),
(7, 1, 7,'Antarktyda'),
(8, 2, 1,'Europe'),
(9, 2, 2,'Asia'),
(10, 2, 3,'North America'),
(11, 2, 4,'Sounth America'),
(12, 2, 5,'Africa'),
(13, 2, 6,'Australia');
CREATE TABLE `countries`
(
`id` int(11) NOT NULL,
`language` int(11) NOT NULL,
`country` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`country_number` int(11) NOT NULL,
`continent` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`language`) REFERENCES `languages`(`id`)
#FOREIGN KEY (`continent`) REFERENCES `continents`(`continent_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `countries` (`id`, `language`,`country_number`,`continent`, `country` ) VALUES
(1, 1, 1, 1, 'Polska'),
(2, 2, 1, 1, 'Polish'),
(3, 1, 2, 1, 'Wielka Brytania'),
(4, 1, 3, 1, 'Stany Zjednoczone'),
(5, 1, 4, 1, 'Niemcy'),
(6, 1, 5, 1, 'Francja'),
(7, 1, 6, 1, 'Włochy'),
(8, 1, 7, 1, 'Hiszpania');