Bonjour,
la problèmatique :
J'ai une base de téléphone, chaque téléphone accepts divers codecs (mpg4, mp3, 3gp, wmv & co)
J'ai une base de fichier, chaque fichier est encodé dans un ou plusieurs codecs (exemple a.avi encodé en mpg4 et mp3)
Je dois être capable de sortir pour un téléphone donné tous les fichiers entièrement compatible.
Un fichier est concidéré comme compatible a un téléphone si l'ensemble des codecs du fichier est ENTIEREMENT inclus dans l'ensemble des codec qu'accepte le téléphone.
Donc j'ai pensé faire les tables (trés simplifié hein)
telephones (id, nom)
fichier(id, nom)
codec(id, nom)
telephone_accept(phone_id, codec_id)
fichier_accept(fichier_id, codec_id)
Le problème c'est l'écriture de la requete
qui pourrait être en language "sqlhumain" pour le telephone 1
SELECT a.* FROM fichier AS a
WHERE
(SELECT b.codec_id FROM fichier_accept AS b WHERE b.fichier_id = a.id)
ISINCLUDE IN
(SELECT c.codec_id FROM telephone_accept AS c WHERE c.phone_id = 1)
Je n'ai pas trouvé de documentation sur les opérations ensembliste du genre test d'inclusion, d'égalité ...
La je bloque, je trouve pas de schema pour ma BD permettant de trouver la réponse![]()
Partager