Hallo,
ich habe eine category-Tabelle und mehrere Untertabellen (category_application, category_server,...) zu dieser Tabelle. Der User soll aus der Tabelle category über select-Feld ein Eintrag auswählen und aus der zugehörige Untertabelle ebenfalls. (Siehe bitte den Anhang) Die Beide Einträge sollen in einer message-Tabelle eingefügt und angezeigt werden können. d.h. Ich brauche category_application_name und category_server_name usw. Wie kann ich das normalisiert realisieren? wie sehen die neue Tabellen aus? Vielen Dank für eure Antworten.
Gruß
Kiumars
Announcement
Collapse
No announcement yet.
Tabelle mit mehrere Untertabellen normalisieren
Collapse
X
-
Tabelle mit mehrere Untertabellen normalisieren
Tags: None
-
Vielen Dank Christian für die schnelle Antwort. ich habe ganze Menge Tabellen, die eine Beziehung zu message_tabelle haben. ich möchte gerne die Tabellen zeigen, ich kann hier kein Datenbank dump hochladen.Zuletzt editiert von kjahandel; 24.05.2020, 10:03.
-
Wenn eine Message aus der Tabelle message mit anderen Tabellen gejoint werden soll. muss die einzelne Message ihre Datensätzen aus den anderen Tabellen erkennen können
Soll die Message mit der Tabelle message_category gejoint werden, muss die Tabelle message_category eine ID der Tabelle message enthalten (message_id)
select * from message as m
left join message_category as mcat on m.id=mcat.message_id
Soll weiterhin die Tabelle categorie dazujejoint werden, so erhält diese ebenfalls eine ID der Tabelle message (message_id)
select * from message as m
left join message_category as mcat on m.id=mcat.message_id
left join category as c on m.id=c.message_id
Das gilt natürlich nur, wenn es eine "führende" Tabelle gibt, auf die sich die anderen beziehen
Gibt es mehrere führende Tabellen, wenn bsp. die message_category von der categorie ableitet, ist zwischen diesen eine FK Beziehung herzustellen
select * from message as m
left join message_category as mcat on m.id=mcat.message_id
left join category as c on mcat.id=c.message_categorie_id
Du musst prüfen, in welchen Tabellen du eine 1:n Beziehung hastZuletzt editiert von Christian Marquardt; 23.05.2020, 06:53.
- 1 like
-
Jeder items in category-Liste (category-Tabelle) hat eigene Tabelle z.B. Applikation hat die Tabelle category_application) .
Es soll bei der Erstellung eines Tickets aus diese beide Tabellen jeweils ein item ausgewählt werden und in message-Tabelle eingefügt werden.
Ich möchte nicht in der message-Tabelle die fremd-schlüssel category_id haben, daher erstelle ich eine neue Tabelle wie z.B. message_category
ALSO ich möchte category_id nicht in message_tabelle haben. brauche ich überhaupt außer message_category weitere neue Tabellen? Es geht eigentlich um Abfragen und das joinen der Tabellen?
message
-------------
id list_id ( (category_id ) )
--------------------------
1
2
3
4
5
category
---------------
id category_name
---------------------
1 Keine
2 Application
3 Server
4 End User Asset
5 Network
message_category
---------------
id list_id category_id
---------------------------------
1
2
3
4
5
die Unterkategorien:
category_application
--------------------------
id category_application_name
---------------------------------
1 Keine
2 Business Application
3 End User and Client Application
4 Service Management Application
category_server
---------------------
id category_server_name
----------------------------
1 Keine
2 Linux
3 Unix
4 Windows
end_user_asset
--------------------
id end_user_asset_name
---------------------------
1 Keine
2 A
3 B
4 C
category_network
----------------------
id category_network_name
-----------------------------
1 Keine
2 A
3 B
4 C
Neue Tabellen:
message_category_application
----------------------------
id list_id category_application_id
---------------------------------------
message_category_server
-----------------------
id list_id category_server_id
----------------------------------
message_end_user_asset
---------------------
id list_id end_user_asset_id
-------------------------------
message_category_network
------------------------
id list_id category_network_id
-------------------------------------
SELECT m.list_id AS list_id,
cat.category_name AS category_name,
mca.category_application_name AS category_application_name,
cs.category_server_name AS category_server_name
FROM message as m
LEFT JOIN message_category AS mcat ON mcat.list_id = m.list_id
LEFT JOIN category AS cat ON cat.id = mcat.category_id
LEFT JOIN message_category_application AS mca ON mca.list_id = m.list_id
LEFT JOIN category_application AS ca ON ca.id = mca.category_application_id
LEFT JOIN message_category_server AS mcs ON mcs.list_id = m.list_id
LEFT JOIN category_server AS cs ON cs.id = mcs.category_server_id
Usw...Zuletzt editiert von kjahandel; 23.05.2020, 06:28.
-
Mir erschließt sich aus den wenigen Angaben der Zusammenhang der Tabellen nicht
https://de.wikipedia.org/wiki/Normal...ormalform_(2NF)
Weiterhin worum geht es hier?
Um die Erstellung der Tabellen und die Realisierung der FKs?
Um eine Abfrage und das joinen der Tabellen?
Was sind "Neue Tabellen"?
Leave a comment:
Leave a comment: