Jointures SQL pour limiter accès - SQL/NoSQL - Programmation
Marsh Posté le 04-03-2008 à 11:50:37
Elle est où la question, là?
Marsh Posté le 04-03-2008 à 14:03:09
comment faire pour limiter l'accès avec des jointures SQL en sachant que mes tables ressemblent à ça :
ADMIN : idADMIN (clé primaire), Nom, Prenom, Mail, mdp
USER : idUSER (clé primaire), id ADMIN(clé étrangère), Nom, Prenom, Mail, mdp
MATERIEL : idMAT (clé primaire), id ADMIN(clé étrangère),Lien
DROIT (=relation USER et MATERIEL) : idUSER et idMAT (clés étrangères)
Marsh Posté le 04-03-2008 à 14:05:44
Limiter les accès avec des jointures SQL ça veut pas dire grand chose...
Tu vas utiliser des jointures pour récupérer les droits d'un utilisateur, mais c'est tout...et ces jointures sont implicitement déjà apparentes par tes clés étrangères.
Marsh Posté le 04-03-2008 à 15:51:48
oui mais en fait je ne sais pas très bien comment créer ces clés étrangères j'ai pourtant essayé beaucoup de choses FOREIGN KEY etc ... mais ça ne marché pas alors peut être qu'il faudrait les définir à la création de la table dans une requête sql donc si quelqu'un peut m'aider pour le donner une requête pour créer les tables que je souhaite
Marsh Posté le 04-03-2008 à 15:53:22
Qu'est-ce que tu as fait pour l'isntant? Et avec quel sgbd? On manque d'info pour t'aider...
Marsh Posté le 04-03-2008 à 17:12:21
j'ai juste créer mes tables avec phpMyAdmin en définissant mest clés primaires mais pas les clés étrangères
Marsh Posté le 04-03-2008 à 17:12:57
Ben rajoute les clés étrangères. L'interface devrait permettre ça.
Marsh Posté le 04-03-2008 à 17:28:17
Sans vouloir critiquer gratuitement (c'est pas mon genre ), je ne comprends rien à la représentation que tu fais de ton problème....
Je pense que tu poses mal ton problème et que ton modèle n'est pas correct...
SI tu veux faire de l'administration de droits, qqch comme ca serait plus logique
GROUPE : idGROUPE (clé primaire), idADMIN (qui est juste l'idUSER de l'admin), NomGROUPE
USER : idUSER (clé primaire), idGROUPE(clé étrangère), Nom, Prenom, Mail, mdp
MATERIEL : idMAT (clé primaire), Lien (j'ai enlevé idADMIN car je ne vois aps ce qu'il vient faire)
DROIT (=relation USER et MATERIEL) : idUSER et idMAT (clés étrangères)
Toutes les notions de clés primaires, étrangères, .... c'est bien, mais ce n'est pas ca qui vas créer ton SQL et qui va faire tes jointures... Il va boen falloir que tu utilises des INNER JOIN ou LEFT JOIN ou RIGHT JOIN ....
=> Que veux-tu obtenir à la fin en terme de résultats de requêtes ?
Marsh Posté le 05-03-2008 à 08:08:56
non skeye l'interface de phpMyAdmin ne permet pas de rajouter des clés étrangères et quand à babass c gentil mais ton MCD ne permet de réaliser ce que je désire.
Marsh Posté le 05-03-2008 à 08:14:56
si l'interface ne le permet pas, tu n'as plus qu'à aller vior la doc de mysql pour écrire les requêtes à la main...
Marsh Posté le 05-03-2008 à 09:50:25
J'aime bien ce post, on a un peu l'impression de jouer à la loterie du sql.
Alors je me lance et tente un:
Code :
|
Mais sinon je rejoins également skeye et badass, ton modèle c'est de la daube
Marsh Posté le 05-03-2008 à 10:32:25
Je comprends pas trop pourquoi tu met DROIT D USER U M
mais sinon merci
Marsh Posté le 05-03-2008 à 10:33:49
C'est comme cela que l'on note les alias :
Marsh Posté le 05-03-2008 à 11:14:30
babasss a écrit : C'est comme cela que l'on note les alias :
|
prex
le AS est toujours facultatif que ça soit pour un champ ou une table. J'exprime pleinement mon coté feignasse en ne les mettant pas.
Ici ils sont utiles ( et obligatoires) car plusieurs champs dans des tables différents pour le même nom ( idUser, idMAT ...).
Certains pourraient me dire "Ouais mais avec les naturals joins machins truc chouette ça marche sans alias c'est plus mieux" et la je réponds:
Marsh Posté le 04-03-2008 à 08:24:15
Bonjour à tous,
je suis actuellement en train de "développer" une application ayant pour but de permettre à un "administrateur de famille" de créer des nouveaux utilisateurs et ainsi leur attribuer leurs droits je m'explique : ces droits porteront sur la caméra IP ainsi qu'un disque dur IP, par exemple l'administrateur créer user 1 et dit il aura accès à la cam mais pas au dd, l'utilisateur 2 aura accès au dd mais pas à la cam, ... j'ai réalisé un MCD et ma base de données est donc constituées de 4 tables (administrateur, user, matériel, droit) donc si vous pouvez m'aider à réaliser ce système de droit, j'ai cru comprendre que les jointures SQL étaient la bonne solution mais je ne sais pas trop comment adapter les jointures SQL à mon problème.
Merci d'avance !