php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2007, 10:36  
Neuer Benutzer
 
Registriert seit: 16.10.2007
Beiträge: 2
quichibo
Standard MySQL Join mit 3 Tabellen

Hallo zusammen!

Ich programmiere und warte die Homepage einer Kommune. Hier benutzen wir für alle Dateien (Bilder, Formulare, etc.) einen Medienpool. Da alle Mitarbeiter in verschiedenen Fachbereichen arbeiten, dürfen auch nicht alle Mitarbeiter auf alle Dateien zugreifen. Und hier fängt das Problem an.

Ich habe folgende Tabellen:

medienpool
id int(5)
filetype varchar(50)
filename varchar(200)
orgfilename varchar(200)
filesize int(10)
width int(5)
height int(5)
title varchar(200)
description text
copyright varchar(200)
filecat int(5)
filecat2 int(5)
createdate int(10)
createuser int(3)
archivbit int(2)

mp_categorie
id int(5)
name varchar(20)
filetype varchar(20)
categorietype int(5)
uppercat int(5)
auth enum('all', 'limited')

rechte_mp
id int(10)
b_id int(3)
cat_id int(5)

Ich möchte alle Informationen über die Dateien haben, auf die der User zugreifen darf. Die Dateien sind in Kategorien eingeteilt. Eine Kategorie und eine Unterkategorie. Diese werden in der Tabelle mp_categorie (ich weiß, falsch geschrieben) gespeichert. Zu jeder Datei wird dann im Feld medienpool.filecat und medienpool.filecat2 jeweils die mp_categorie.id eingetragen.
Der Zugriff wird wie folgt geregelt. In mp_categorie.auth wird entweder ein all oder ein limited für eine Kategorie eingetragen. all bedeutet hier, jeder hat Zugriff auf die Kategorie und limited halt, nicht jeder hat Zugriff auf die Kategorie.
Für diejenigen, die auf eine "Zugriffbeschränkte" Kategorie zugreifen dürfen, wird pro Kategorie ein Eintrag in rechte_mp erstellt. Inhalt: rechte_mp.b_id BenutzerID, rechte_mp.cat_id die KategorieID.

Jetzt zur eigentlichen Abfrage: Es soll nachgesehen werden, auf welche Kategorien zugegriffen werden darf und dann die Dateien ausgeben.

Ich hoffe, ich habe es einigermaßen verständlich erklärt und bedanke mich jetzt schonmal für die mühe!

Gruß
quichibo
quichibo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2007, 11:06  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

  • Ich würde den Zugriff über eine (bzw. 2) Gruppentabellen lösen. Jeder Benutzer gehört zu einer (oder mehreren) bestimmten Gruppen. Das vereinfacht die Administration.
    Die ID der berechtigten Gruppe übernimmst du dann in die Kategorien-Tabelle.
    Das Attribut auth macht überhaupt keinen Sinn, weise diesen Medien einfach eine Gruppe zu, zu der alle gehören.
    Die Abhängikeiten von Unter- und Überkatgorien ist ja in der Kategorien-Tabelle abgebildet. In die Medientabelle gehört nur eine Kategorie
Die Abfrage könnte dann etwa so aussehen:
Code:
SELECT
	m.filename,
	m.title,
	...,
	k.name,
	...
FROM
	medienpool m
INNER JOIN mp_categorie k
	ON m.filecat = k.id
INNER JOIN gruppen g
	ON k.group_id = g.id
INNER JOIN gruppe_user gu
	ON g.id = gu.group_id
INNER JOIN user u
	ON gu.user_id = i.id
WHERE u.name = '$user'
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 18.10.2007, 10:58  
Neuer Benutzer
 
Registriert seit: 16.10.2007
Beiträge: 2
quichibo
Standard

Hallo,

tja, es hat ein wenig gedauert, bis ich es verstanden hab. Dann hat es noch ein wenig gedauert, bis ich die Tabellen erstellt/umgestellt hab...

Aber jetzt kann ich sagen, es läuft!


Vielen Dank dafür!


Gruß
quichibo
quichibo ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
Ein kleines Join Problem (MySQL) susi85 Datenbanken 12 12.12.2007 20:00
generelle Fragen zu MySql bezüglich der Tabellen woods Datenbanken 7 16.10.2006 13:38
JOIN problem 2 tabellen - zeile(tab1) zu spalte(tab2) Ministry Datenbanken 7 31.05.2006 10:31
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MySQL Daten aus verknüpften Tabellen auslesen ? PHP Tipps 2005-2 2 27.06.2005 03:21
[Erledigt] Join mit 3 Tabellen Datenbanken 21 16.05.2005 23:20
INNER JOIN mit 4 tabellen ??? Dragon26mFR Datenbanken 5 01.05.2005 18:51
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
[Erledigt] Suche über 2 Tabellen in MySQL PHP Tipps 2004-2 4 15.12.2004 16:05
Join aus 3 Tabellen mit nur einer Verknüpfung? Datenbanken 7 24.09.2004 18:25
[Erledigt] keine tabellen in mysql Datenbanken 0 31.08.2004 11:22
[Erledigt] Join für Select Count(`id`)-Abfrage über 4 Tabellen Datenbanken 4 10.07.2004 18:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql join, inner join 3 tabellen, mysql join 3 tabellen, mysql join mehrere tabellen, mysql inner join 3 tabellen, mysql inner join mit 3 tabellen, mysql join über 3 tabellen, join 3 tabellen, mysql inner join mehrere tabellen, inner join mehrere tabellen, join mysql, http://www.php.de/datenbanken/44949-mysql-join-mit-3-tabellen.html, mysql 3 tabellen join, inner join über 3 tabellen, mysql join über mehrere tabellen, join mehrere tabellen, php mysql join mehrere tabellen, join über mehrere tabellen, php mysql join, mysql join drei tabellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.