Petite question de logique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Petite question de logique

par Ajoloca » 23 déc. 2006, 15:09

Dans le cas de l'exemple dans la table modules_site les deux champs id_site et id_module doivent, à eux deux former la clé primaire.

par Shrell » 23 déc. 2006, 15:00

hello
je profite de ce post pour poser une question qui me taraude : dans le cas d'une cardinalité n:n, faut-il indexer la table de liaison et/ou créer une clé primaire dans cette table? à première vue je dirais que non, mais j'aimerais votre avis là dessus

par momox » 23 déc. 2006, 14:29

Ah ok, pas trop mauvaise idée, j'avais pas percu ca dans ce sens ^^
Merci :P
@+

par Ajoloca » 23 déc. 2006, 13:55

Bonjour,

Pas du tout, c'est le contraire tu l'évites cette redondance.

Un exemple
Table site
id_site = s1, s2, s3
Table modules
id_module = m1, m2, m3.

On va dire que le site s1 a droit à tous les modules
que le site s2 a droit aux modules m1 et m3
et que le site s3 n'a lui droit qu'a m2
tu aurais dans modules_site
s1 - m1
s1 - m2
s1 - m3
s2 - m1
s2 - m3
s3 - m2
Si maintenant tu veux récupérer les modules pour le site s1,
une simple requête sur modules_site te les donnera
SELECT id_module FROM modules_site WHERE id_site = s1;

par momox » 23 déc. 2006, 13:45

Oui mais un problème se pose pour moi, c'est que le module peut être actif pour plusieurs sites, donc si je suis ta logique, ca va me faire une redondance entre les tables ...
@+

par Ajoloca » 23 déc. 2006, 01:47

Bonsoir,

Personnellement je te conseillerai deux tables et une relation n, n entre les deux.
De façon très, très simpliste

Table site
id_site
nom
.....
Table modules
id_module
nom
......
Relation (table) modules_site
id_site
id_module
....

Réfléchis à la souplesse de cette architecture.

Petite question de logique

par momox » 23 déc. 2006, 01:02

Bonsoir,
je me posais une petite question quant a l'élaboration d'un projet dont j'ai pris les rennes récemment.
Je dois gerer une plateforme multisite comportant des modules répertoriés dans une base mysql, mais je me posais quelques petites questions nottament a cause du fait que certains modules sont disponibles sur certains sites et pas sur d'autres, donc je me demandais si il était possible de rentrer plusieurs valeurs dans un champ, et lors de la requete SELECT, que si la valeur est contenue dans le champ, le module soit consideré comme valide pour le site ?
Merci d'avance ;)