Je suit la configuration de base de données existante:relation ManyToMany fixation
CREATE TABLE `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`category_ids` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)
dans lequel category_ids
est une chaîne de séparés par comas de catégorie id: 1, 10, 15, 6
. Existe-t-il un moyen de convertir cette base de données en plus conventionnelle (en utilisant trois tables, une pour stocker les relations), en utilisant uniquement SQL et aucun autre script?
Je souhaite qu'il y ait un moyen de générer table de carte indépendante du nombre max . Maintenant, il semble fonctionner, mais pas de manière optimale, mais qui s'en soucie tant que cela fonctionne? :) – Shark
BTW, nous pouvons utiliser 'UNION' au lieu de' UNION ALL' et MySQL actuellement n'ont pas de fonction 'LEN', c'est' LONGUEUR 'là. – Shark
@Shark - Union a ajouté un surcoût de déduplication. Union Tout ne fait pas. Si vous ne vous souciez pas de la déduplication, ou si vous en avez besoin, il est conseillé d'utiliser Union All. – MatBailie