2016-06-09 11 views
-1

Ich habe die folgenden Tabellen:Erhalten Sie Daten aus einer Tabelle, während Feld in einer anderen Tabelle auf das Vorhandensein/Wert des Feldes basierend Einstellung

Websites 
-------- 
Resource (Auto incrementing primary key) 
Name 
URL 
group_id (ID of group of people website belongs to) 

WebsitePermissions 
------------------ 
Resource_id (Referencing resource in Websites table) 
GroupMember_ID (Reference to a user in group) 
Is_allowed (true/false) 

Das System funktioniert im Prinzip wie folgt:

Es gibt eine " Gruppe "von Personen, der Gruppenadministrator kann x Anzahl von Websites in der Systemsteuerung erstellen, die offensichtlichen Werte zuweisen

Dieser Admin kann dann auf die anderen Personen in der Gruppe und aktivieren/deaktivieren Sie die Fähigkeit zu sehen/zu verwenden Site mit sagen, ein Ein/Aus-Schalter. Der Standardwert wäre OFF.

Jeder Benutzer muss einfach in der Lage sein, nach "Alle Ressourcen mit Gruppen-ID (meine Gruppen-ID)" abzufragen, aber dann ein zusätzliches Feld, das die Permissions-Tabelle prüft, ob 1: überhaupt eine Zeile vorhanden ist null hat also Admin nichts und 2 geändert: wenn es eine Zeile, für diesen Benutzer die wahr/falsch-Erlaubnis Rückkehr

So ist der ideale Ausgang für x Benutzer sein würde:

Resource  Name   URL   Group_id IS_ALLOWED 
    1  Google Google.co.uk   17   TRUE 

Antwort

0

ich denke, das trifft Ihre Kriterien:

Select wb.Resource, wb.Name, wb.URL, wb.group_id, wperm.Is_allowed from 
     Websites wb inner join WebsitePermissions wperm on wb.Resource = wperm.Resource_id 
     where GroupMember_ID = <insert your group member's ID here> 
     and wperm.Is_allowed = true 
Verwandte Themen