Tabellen Beziehungskonflikt

Gimli3311

Benutzer
Beiträge
6
Hallo Zusammen,

Ich bräuchte mal eurer Hilfe,

Aufgabe:

Meine Aufgabe ist es eine Ansicht zu erstellen wo ich einmal sehen kann welche Prozesse betroffen sind wenn folgendes Gerät ausfällt und umgekehrt.

Tabellen:

tblDevice ( ITTag (PK))
tblProzesse ( ProzessRefNr (PK) , SAP_ERP, SAP_APO)
tblSAP_ERP(ID (PK), ITTag (PK))
tblSAP_APO(ID (PK), ITTag (PK))
tblEMail(ID (PK), ITTag (PK))


Schaubilder: Beziehungen
upload_2015-11-13_16-17-41.png
Tabellen Inhalte:
upload_2015-11-13_16-18-12.png

Fallbeispiel:

Ich wähle den Prozess GP-0001 aus und will alle Geräte mit den Details sehen die in tblDevice drin stehen (Spalten wurden weggelassen). Das wäre der Service SAP_ERP und SAP_APO die Geräte sind IT00001, IT00022 und IT00244.

Wieso sind die Tabellen so aufgebaut?

tblSAP_ERP usw. sind Service. Dort werden die Geräte gepflegt die der Service braucht zum ausüben seiner Funktion. Die Prozess Tabelle wird von MA der Firma ausgefüllt um dies so einfach wie möglich zu machen haben diese nur ein Auswahlfeld mit Ja oder Nein.


Ich bekomm die Ausgabe einfach nicht hin :/
Entweder weil die Beziehungen nicht stimmen oder ich die Abfrage nicht schreiben kann
Aber vlleicht liegts auch daran das wir heute Freitag haben ^^

Brauche keine Endlösung nur Tipps, schließlich ist es meine Aufgabe :)

Grüße
Gimli3311
 
Werbung:
1. Warum referenzierst du dein ITTag nicht direkt mit dem Prozess?
2. Sicher das dein Modell ausgereift ist? Wenn es für ein Gerät zwei Prozesse gibt und für beide Prozesse eine EMail-Adresse hinterlegt ist, kannst du diese nichtmehr in deiner "tblEMail" ablegen... Da es diese Referenz ja schon gibt :)

3. In deinem jetzigen Beispiel ist es unmöglich deine gewollte Referenz herzustellen. Es sei denn ich habe dein Vorhaben noch nicht ganz verstanden?
 
Guten Morgen Distrilec,

Danke für deine Antworten :)

1. Warum referenzierst du dein ITTag nicht direkt mit dem Prozess?
Das wäre am einfachsten bloß stell dir vor wir haben ca. 3000 Geräte die in der Liste aufgeführt sind und über 1500 Geschäftsprozesse.
Rein Theoretisch müsste man jetzt jedes Gerät das zu einem Geschäftsprozess gehört händisch in das System erfassen. Da stellen sich für mich die Fragen:" Wer pflegt die ganze Datenbank? Wie groß ist der Aufwand wenn Änderungen an Geräten oder Prozessen stattfinden?" Es wäre ein zu großer Aufwand.

Jetzt stell dir vor das ein Geschäftsprozess ein oder mehrere Service nutzt (Service sind z.B. SAP_ERP; Email(Exchange), SharePoint etc.) nun musst du einmal als IT'ler in den Service Tabellen die Geräte einpflegen und bei Änderungen gegeben falls nachpflegen. Nun muss ich nur noch herausfinden welche Prozesse welchen Service nutzen. Dabei müssen Mitarbeiter die für den Geschäftsprozess verantwortlich sind in einer Maske nur ausfüllen ob der Service im Prozess vorhanden ist. Die geschieht mit einem Formular in Access und einem Auswahlfeld JA/NEIN.

Ich hoffe ich habe mich verständlich ausgedrückt :D ist nicht so meine Stärke :rolleyes:


2. Sicher das dein Modell ausgereift ist? Wenn es für ein Gerät zwei Prozesse gibt und für beide Prozesse eine EMail-Adresse hinterlegt ist, kannst du diese nichtmehr in deiner "tblEMail" ablegen... Da es diese Referenz ja schon gibt :)

tblEmail steht für die Systeme um eine Email verschicken zu können (EXCHANGE, Firewall), sonnst hättest du völlig Recht.
3. In deinem jetzigen Beispiel ist es unmöglich deine gewollte Referenz herzustellen. Es sei denn ich habe dein Vorhaben noch nicht ganz verstanden?

Habe es am Freitag noch hinbekommen mit UNION indem ich mehrere Select Abfragen verbinde aber wollte noch paar andere Meinungen hören:)

Grüße Gimli3311
 
Das heißt:
Jeder Prozess, der (potentiell) EMails versendet, benutzt ALLE Geräte die für EMail benutzung eingetragen sind?

Da ich die Hintergründe jetzt nicht kenne... Bist du dir wirklich sicher das du das willst?

Es wäre ein zu großer Aufwand.
Ich bin nie ein großer Fan von Aussagen wie: Wir wissen unsere Daten sind falsch, wir sind nur zu Faul sie zu korrigieren... gewesen, aber egal, sind nicht meine Daten :)

Davon abgesehen brauchst du dann deine Zwischentabellen nicht...
(in meinen Beispielen fehlen bewusst einige PKs / FKs / Spalten... Der Übersichtlichkeit wegen)
Code:
Create tblDevice
(
ittag Varchar2(200)
,erp  Varchar2(3)
,apo Varchar2(3)
,email Varchar2(3)
);
Kann genau das gleiche, nur einfacher...
Ist vom reinen Modell her aber auch noch falsch... Von der reinen Modellierung her brauchst du soetwas:
Code:
Create Table devices_tab
(
device_id Varchar2(200)
.
.
.
);

Create table process_tab
(
process_id Varchar2(200)
.
.
.
);

Create Table system_function_tab
(
system_id Varchar2(200)
.
.
.
);

Create Table process_property_tab
(
 process_id Varchar2(200)
,system_id Varchar2(200)

,Constraint process_property_fk01 Foreign Key (system_id) References system_function_tab (system_id)
);

Create Table devive_property_tab
(
 device_id Varchar2(200)
,system_id Varchar2(200)

,Constraint device_property_fk01 Foreign Key (system_id) References system_function_tab (system_id)
);
Wenn ein Prozess/ ein Gerät ein spezifisches System nutzt (Exchange, Sharepoint, etc.) wird in den entsprechenden Referenz-Tabellen ein Eintrag angelegt.
Somit muss man nurnoch (bspw. via Inner Join oder In-Clause... Abhängig von deinen/euren DB-Eintellungen) alle Geräte suchen mit den gleichen Referenzen wie der Prozess
(Die Systeme müssen dann natürlich in einer Tabelle gepflegt werden... Kann ja sein das neue dazu kommen bzw. alte verschwinden...)
 
Werbung:
:D
Das heißt:
Jeder Prozess, der (potentiell) EMails versendet, benutzt ALLE Geräte die für EMail benutzung eingetragen sind?

Da ich die Hintergründe jetzt nicht kenne... Bist du dir wirklich sicher das du das willst?

Nicht ganz. Ich versuch es mal mit einem Beispiel zu erklären. Der Geschäftsprozess "Bestellung" braucht Service wie SAP_ERP (Bestellung verfassen), SAP_APO(Um benötigte Menge zu ermitteln), EMail (Austausch von Informationen mit dem Lieferanten). Hinter dem Service EMail sind nun ca. 18 Geräte versteckt (EXCHANGE Server und die Firewall).
Hoffe das Beispiel konnte etwas weiterhelfen :rolleyes:

Ich bin nie ein großer Fan von Aussagen wie: Wir wissen unsere Daten sind falsch, wir sind nur zu Faul sie zu korrigieren... gewesen, aber egal, sind nicht meine Daten :)

Die Daten sind schon korrekt aber das erste Aufnehmen der Daten wäre zu Aufwendig. Muss auch sagen die Entscheidung liegt leider nicht bei mir :D

Davon abgesehen brauchst du dann deine Zwischentabellen nicht...
(in meinen Beispielen fehlen bewusst einige PKs / FKs / Spalten... Der Übersichtlichkeit wegen)
Code:
Create tblDevice
(
ittag Varchar2(200)
,erp  Varchar2(3)
,apo Varchar2(3)
,email Varchar2(3)
);
Kann genau das gleiche, nur einfacher...

Auf die Idee bin ich noch gar nicht gekommen.
Folgendes Problem hab ich dabei aber. Die tblDevice ist eine Verknüpfung von SharePoint. Wenn ich nun die Spalten hinzufüge sind diese nur in der ACCESS-DB und nicht in der SharePoint-Liste.
Dies wiederum könnte ich umgehen in dem ich einfach in der SharePoint-Liste die Spalten hinzufüge.:rolleyes:

Ist vom reinen Modell her aber auch noch falsch... Von der reinen Modellierung her brauchst du soetwas:
Code:
Create Table devices_tab
(
device_id Varchar2(200)
.
.
.
);

Create table process_tab
(
process_id Varchar2(200)
.
.
.
);

Create Table system_function_tab
(
system_id Varchar2(200)
.
.
.
);

Create Table process_property_tab
(
process_id Varchar2(200)
,system_id Varchar2(200)

,Constraint process_property_fk01 Foreign Key (system_id) References system_function_tab (system_id)
);

Create Table devive_property_tab
(
device_id Varchar2(200)
,system_id Varchar2(200)

,Constraint device_property_fk01 Foreign Key (system_id) References system_function_tab (system_id)
);
Wenn ein Prozess/ ein Gerät ein spezifisches System nutzt (Exchange, Sharepoint, etc.) wird in den entsprechenden Referenz-Tabellen ein Eintrag angelegt.
Somit muss man nurnoch (bspw. via Inner Join oder In-Clause... Abhängig von deinen/euren DB-Eintellungen) alle Geräte suchen mit den gleichen Referenzen wie der Prozess
(Die Systeme müssen dann natürlich in einer Tabelle gepflegt werden... Kann ja sein das neue dazu kommen bzw. alte verschwinden...)

Der Ansatz gefällt mir sehr gut! Werde mal paar Konzepte ausarbeiten mit deinen Vorschlägen und prüfen ob ich es mit meinem Wissen umsetzten kann. Und letzten Endes darf mein Chef dann eine Entscheidung treffen :D

Grüße Gimli3311
 
Zurück
Oben