PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Eine Zuordnungstabelle für alles? (http://www.selfphp.de/forum/showthread.php?t=20854)

mh1 05.02.2009 16:56:01

Eine Zuordnungstabelle für alles?
 
Hallo

ich habe eine Frage betreffend einer Überlegung, welche ich mir gemacht hab. Bis jetzt eine reine Gedankenspielerei.
Bezieht sich auf den Webbereich und würde mit PHP&MySQL umgesetzt.

Mehrere Tabellen werden normalisiert durch eine dritte Zuordnungstabelle - normalerweise. das sieht in etwa so aus:

tabelle 1
uid
feld 1
feld 2
feld x

tabelle 2
uid
feld 1
feld 2
feld x

zuordnungstabelle
uid
fid_tabelle 1
fid_tabelle 2

Bei mehreren solchen Konstrukten, welche untereinander verknüpft sind entstehen somit auch mehrere Zuordnungstabellen.

Meine Idee war es nun eine "Allgemeine Zuordnungstabelle" zu erstellen, welche alle Tabellen durch zusätzliche Parameter verknüpft werden - natürlich mit dem Benutzerfrontend welches die applikatorische Verknüpfung herstellt, sonst ginge das wohl kaum.

Meine Idee nun:

Tabelle 1:
uid
Feld 1
Feld X

Tabelle 2:
uid
Feld 1
Feld X

Tabelle X:
uid
Feld 1
Feld X

die allgemeine Verknüpfungstabelle:
uid
fid_tabelle-1
fid_tabelle-2
name_tabelle-1
name_tabelle-2


Durch die zusätzlichen Felder welche die Namen der Tabellen beinhalten, welche miteinander verknüpft werden sollen können somit beliebige Zuordnungen in der Tabelle vorgenommen werden und beliebige Tabellen miteinander verknüpft werden.

Hoffe nun mal dabei keinen Überlegungsfehler gemacht zu haben.
Bin froh um Feedbacks :-)

Gruss mh1

DokuLeseHemmung 05.02.2009 17:05:18

AW: Eine Zuordnungstabelle für alles?
 
Das mit name_tabelle-1 und name_tabelle-2 wirst du knicken können!
Es sind so keine JOINs möglich.

mh1 05.02.2009 17:19:27

AW: Eine Zuordnungstabelle für alles?
 
Applikatorisch mit PHP gelöst eben schon. Die Tabellennamen sind ja bekannt und dann erfolgt die Abfrage auf die Zuordnungstabelle...

Bsp:

PHP-Code:

$tabelle1 "tabelle1";
$tabelle2 "tabelle2";
$gesuchte_id_tabelle1 "1";

$sql "
SELECT * FROM zuordnungstabelle
LEFT JOIN tabelle1 ON zuordnungstabelle.name_tabelle-1 = '$tabelle1' 
RIGHT JOIN  tabelle2 ON zuordnungstabelle.name_tabelle-2 = '$tabelle2' 
WHERE zuordnungstabelle.foreign_id-1 = '$gesuchte_id_tabelle1'"



DokuLeseHemmung 05.02.2009 17:46:59

AW: Eine Zuordnungstabelle für alles?
 
Zitat:

Applikatorisch mit PHP gelöst eben schon.
Jedem das seine......
Ich kann dir nur davon abraten!!
Zu jeder n:m Relation gehört eine eigene "Kreuztabelle".

Was soll der Vorteil daran sein, wenn man 2 SELECT absetzt, wo doch einer reichen würde?
Lesen: Die 5 Normal Formen

mh1 05.02.2009 17:55:16

AW: Eine Zuordnungstabelle für alles?
 
Zitat:

Zitat von DokuLeseHemmung (Beitrag 124281)
Was soll der Vorteil daran sein, wenn man 2 SELECT absetzt, wo doch einer reichen würde?

Ich setz ja nicht 2 Statements ab.
Vorteil: Nicht zwingend - aus reiner Experimentierfreude =) und zu sehn wie sich das Ganze verhält.

Zitat:

Lesen: Die 5 Normal Formen
Die kenn ich natürlich. Die sind aber auch nicht immer das gelbe vom Ei, musste schon sehr sehr oft auf Normalisierung verzichten zugunsten Performance.

Danke für die Antwort.

======================
Ich schliess den Thread hiermit :)
======================


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:34:48 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.