php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-05-2009, 16:16
Onyxagargaryll
 Registrierter Benutzer
Links : Onlinestatus : Onyxagargaryll ist offline
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
Onyxagargaryll ist zur Zeit noch ein unbeschriebenes Blatt
Standard ERD-"Circles"

Hallo zusammen

Mein Lehrmeister hat zu einem meiner ERDs gesagt, "Circles" sollten vermieden werden, sie bringen sonst später Probleme mit sich. Und um folgenden Fall gehts:

Eine Firma hat Kontakte, genauso ein KMU, beide haben Kontaktpersonen.
Eine grössere Firma kann KMUs besitzen.
==> Problem, der "Circle" entsteht.

Wie kann ich jetzt dieses Problem lösen? Was würdet ihr vorschlagen, welche Alternativen gibt es?

Danke im Voraus für eure Hilfe

Gruss
Onyx
Mit Zitat antworten
  #2 (permalink)  
Alt 20-05-2009, 16:26
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was ist KMU?
Mit Zitat antworten
  #3 (permalink)  
Alt 20-05-2009, 16:27
Onyxagargaryll
 Registrierter Benutzer
Links : Onlinestatus : Onyxagargaryll ist offline
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
Onyxagargaryll ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Abkürzung für Kleines oder Mittleres Unternehmen (v.a. in der Schweiz ein gängiger Ausdruck - sorry )
Mit Zitat antworten
  #4 (permalink)  
Alt 20-05-2009, 16:37
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:
ist ja toll, dass du gern Abkürzungen nützt, aber deutsche und englische durcheinander zu mischen ist nicht gerade sinvoll


back2topic, wo siehst du Zirkelbezug?
Mit Zitat antworten
  #5 (permalink)  
Alt 21-05-2009, 02:09
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Onyxagargaryll Beitrag anzeigen
Eine Firma hat Kontakte, genauso ein KMU, beide haben Kontaktpersonen.
Eine grössere Firma kann KMUs besitzen.
==> Problem, der "Circle" entsteht.
@ASP
Das meint er ....
  • Eine Firma hat Kontakte.
  • Eine KMU hat Kontakte.
  • Eine Firma hat KMU und die hat Kontakte.

@Onyx
Warum hat nicht einfach jede Firma entsprechende KMU's? Zumindest technisch.

So gilt immer "Firma hat KMU hat Kontakt".

Hat eine Firma real keinen KMU, so nutzt du die KMU dennoch als "Platzhalter".
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #6 (permalink)  
Alt 21-05-2009, 02:33
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Das sind die Entitäten und Relationen, die ich herauslese:

Firma --hat--> Kontakt
Firma --hat--> Kontaktperson
KMU --hat--> Kontakt
KMU --hat--> Kontaktperson
Firma --besitzt--> KMU

Das sind alles Einbahnstrassen, da führt kein Weg zurück zum Ausgangspunkt. Wo soll da jetzt ein Kreis sein?

Die von Abraxax angesprochene IS-A-Bezieung (ein KMU ist eine Firma) solltest du auf jeden Fall erstmal mit modellieren. Später kannst du die beiden Entitäten vielleicht zu einer zusammenführen. Dann ist es vielleicht nur noch ein Flag "isKMU", eine Spalte im DB-Design in der Tabelle Firma.
Mit Zitat antworten
  #7 (permalink)  
Alt 21-05-2009, 11:20
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Wo soll da jetzt ein Kreis sein?

Firma -> KMU -> Kontakt <- Firma
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #8 (permalink)  
Alt 21-05-2009, 12:02
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Abraxax Beitrag anzeigen
Firma -> KMU -> Kontakt <- Firma
Quatsch, jemand, der sowas macht, hat keine Ahnung von Data Modeling. Selbst wenn der Ansprechpartner von Mutter- und Tochtergesellschaft die gleiche Person wäre, warum weist du sie mit Zirkelbezug zu? Warum nicht einfach als unabhängigen Kontakt aufnehmen, denn es könnte sich doch auch ändern, z.B. Übernahme der Tochtergesellschaft durch eine andere Firma.
Mit Zitat antworten
  #9 (permalink)  
Alt 21-05-2009, 12:50
stekoe2000
 Registrierter Benutzer
Links : Onlinestatus : stekoe2000 ist offline
Registriert seit: Jul 2003
Beiträge: 342
stekoe2000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Widerspricht das nciht auch der Normalisierung?

Ich hätte jetzt spontan die Kontakte in einer separaten Liste abgelegt und jeden Datensatz mit nem PRIMARY KEY versheen und dann überall wo der Kontakt gebraucht wird ne Zuweisung auf die ID. -> Redundanz wird vermieden.
__________________
Liebe Grüße,
SteKoe!

PHP Tutorials
Peter Kropff | Quakenet | Schattenbaum.net
Mit Zitat antworten
  #10 (permalink)  
Alt 21-05-2009, 14:15
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein, denn es ist zwar zufällig die gleiche Person, sie ist aber Angestellte in 2 verschiedenen Firmen. Es ist außerdem ein Sonderfall, von daher kannst du nicht von Redundanz sprechen. Nimm doch mal ein CRM Programm und erfasse eine Firma, welches Programm läßt dich denn Daten von bestehenden Ansprechpartnern von fremden, bereits aufgenommenen Firmen der gerade erfassten Firma zuweisen?
Mit Zitat antworten
  #11 (permalink)  
Alt 21-05-2009, 15:30
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von Abraxax Beitrag anzeigen
Firma -> KMU -> Kontakt <- Firma
Das ist kein Zirkelbezug. Wenn man den Pfeilen folgt, kommt man von Firma über KMU zu Kontakt, aber der letzte Pfeil zeigt in die andere Richtung. Man kann also nicht von Kontakt zu Firma springen.

Als Klassen würde das etwa so aussehen:
class Firma
class KMU extends Firma
class Mitarbeiter {
function __construct(Firma $firma) {}
}
class Kontakt extends Mitarbeiter

Und als Relationen:
Firma(id, name, ...)
KMU(Firma.id, ...)
Mitarbeiter(id, Firma.id, name, ...)
Kontakt(id, Mitarbeiter.id, ...)

KMU ist eine Spezialisierung von Firma, Kontakt eine von Mitarbeiter. Falls KMU und Kontakt keine weiteren Eigenschaften haben, kann man zusammenfassen:
Firma(id, name, ..., isKMU)
Mitarbeiter(id, Firma.id, name, ..., isKontakt)
Mit Zitat antworten
  #12 (permalink)  
Alt 22-05-2009, 08:44
Onyxagargaryll
 Registrierter Benutzer
Links : Onlinestatus : Onyxagargaryll ist offline
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
Onyxagargaryll ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wow Leute, mit so vielen Antworten habe ich nicht gerechnet ^^

Zitat:
Firma -> KMU -> Kontakt <- Firma
Damit hatte Abraxax recht, so wars gemeint. Ich habe das nochmals als Bild verdeutlicht.

Ob das ein Zirkelbezug ist oder nicht, vermag ich nicht zu beurteilen.
Mein ihr also, damit, so sei es in Ordnung und müsse nicht verändert werden? Oder wäre doch sowas wie
Zitat:
"Firma hat KMU hat Kontakt"
eine Lösung?

Danke für die Hilfe
Herzlichen Gruss
Onyx

EDIT: Die Logik wurde noch diskutiert; Es kann in meinem Fall durchaus sein, dass eine Person sagen wir zu 50% als Sekretärin bei der grossen Firma und 50% als Sekretärin bei der Tochterfirma arbeitet. Oder zumindest ist sie als Kontaktperson für Aussenstehende eingetragen, unabhängig davon, für wen sie arbeitet.
Miniaturansicht angehängter Grafiken
ERD-"Circles"-firma_kmu_kontakt.jpg  

Geändert von Onyxagargaryll (22-05-2009 um 08:48 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 22-05-2009, 08:47
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hast du die ganze Diskussion auch gelesen? Wenn ja, warum fragst du noch?
Mit Zitat antworten
  #14 (permalink)  
Alt 22-05-2009, 08:52
Onyxagargaryll
 Registrierter Benutzer
Links : Onlinestatus : Onyxagargaryll ist offline
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
Onyxagargaryll ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo asp2php

Wenn alle mit
Zitat:
Nein, denn es ist zwar zufällig die gleiche Person, sie ist aber Angestellte in 2 verschiedenen Firmen. Es ist außerdem ein Sonderfall, von daher kannst du nicht von Redundanz sprechen.
einverstanden sind, dann haben wirs, ja. Nur wurde der Thread während meiner Abwesenheit heiss diskutiert und oft falsch interpretiert, also habe ich vorerst angenommen, man habe aufgrund unklarer Informationen aufgehört zu diskutieren

Aber wenn das kein Zirkelbezug ist, dann ist ja alles bestens!

Danke für all die Antworten, Gruss
Onyx
Mit Zitat antworten
  #15 (permalink)  
Alt 22-05-2009, 08:58
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von Onyxagargaryll Beitrag anzeigen
Es kann in meinem Fall durchaus sein, dass eine Person sagen wir zu 50% als Sekretärin bei der grossen Firma und 50% als Sekretärin bei der Tochterfirma arbeitet. Oder zumindest ist sie als Kontaktperson für Aussenstehende eingetragen, unabhängig davon, für wen sie arbeitet.
Hm, da würde ich Person als Entität modellieren. Mitarbeiter und Kontakt sind dann Spezialisierungen von Person, ggf. kann es dazwischen auch eine Abstraktion "Rolle" geben.

Wie kommst du eigentlich auf eine 1-zu-N-Beziehung zwischen Firma und KMU in deinem ERD?
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
circles, datenbankdesign, erd, normalisierung


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
bool Wert "false" obwohl er eigentlich "true" sein sollte :/ flowgrow Projekthilfe 5 22-03-2008 23:38
5x Praktikum: "Marketing" oder "Webdesign" o. "Kommunikation" ... transparent Jobgesuche 4 18-06-2007 17:02
Soap "Could not connect to host" "HTTP" Fehler. Funktioniert auf localhost aber Tormentor PHP Developer Forum 1 29-09-2006 15:26
Mysql einrtag bei <input type="submit" name="Submit" value="Posten" Mathes HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 05-07-2006 16:05
"Focus": Absatz von PC-Spiel "Counter-Strike" seit Erfurt gestiegen Aroree News / Kostenloses 0 09-06-2002 13:05

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:58 Uhr.