2016-05-21 8 views
0

gruppieren Ich habe einen Fall, in dem es Vertreter gibt, die für bestimmte Clients verantwortlich sind. Sie können für viele Clients verantwortlich sein, und diese Clients können viele Wiederholungen haben. Ich habe die Tabellen reps, clients, und die Join-Tabelle von client_reps.Derzeit haben eine Viele-zu-viele-Beziehung, aber jetzt müssen Sie eine der Entitäten

In unserer Firma ist es üblich, mehrere Wiederholungen als Gruppe zu betrachten. Also haben sie sogar einen Namen für die Gruppe und ihre eigene Gruppen-E-Mail-Adresse. Wie würde ich überhaupt anfangen, ein Gruppenkonzept in diese bestehende Struktur einzuführen? Um ein Beispiel zu geben, haben wir Wiederholungen mit IDs 1, 2 und 3. Und dann ein Client mit der ID 1. Alle diese Mitarbeiter haben ihre eigenen Namen und E-Mail-Adressen mit ihren Konten. Aber jetzt wollen sie unter einer einzigen Einheit mit eigenem Namen und E-Mail gruppiert werden. Anstatt diese drei einzelnen Wiederholungen zuzuordnen, würden sie als eine einzige Gruppe zugewiesen werden. Das System muss außerdem wissen, dass diese Gruppe aus diesen drei Vertretern für die Berichterstattung besteht.

Es mag sogar akzeptabel sein, diese Wiederholungen noch einzeln zuzuweisen, aber solange das System unterscheiden kann, dass diese drei Teil einer bestimmten Gruppe sind.

+0

Ist die Firma ein Kunde? Oder ist es eine andere Entität, die zu Ihrer Datenbank gehört? – Alfredo

+0

Ah, tut mir leid. Firma/Kunde ist das gleiche. Es ist nur eine Entität im System. Ich habe die Frage bearbeitet. – kenshin9

+0

Ihre Frage beschreibt einige Probleme nicht. Kann ein 'rep_person' Teil von verschiedenen Gruppen oder nur einer sein, und kann ein Client rep von verschiedenen Gruppen oder nur einer? Und können alle Mitglieder einer Gruppe den Kunden betreuen oder vielleicht nur wenige? –

Antwort

5

Worüber Sie sprechen, verhält sich wie Verteilergruppen. Hier ist ein EER-Diagramm, wie Sie das lösen können.

EER Diagram

Reps kann zu vielen Gruppen angehören und eine Gruppe viele Wiederholungen haben. Jede Gruppe hat ihre eigene ID, ihren Namen und ihre E-Mail-Adresse.

+0

Danke, dass Sie sich die Zeit genommen haben, ein Diagramm zu erstellen. Ich verstehe, was du zeigst. Wenn ich zu meinem ursprünglichen Beispiel zurückkehre, wo einem Client drei Wiederholungen zugewiesen sind, hätte die Tabelle "client_reps" drei Datensätze, die jeden dieser Wiederholungen an den Client binden. Wenn diese drei Wiederholungen auch Teil einer Gruppe sind, wie in der 'groups_has_reps' Tabelle aufgezeichnet, wie könnte ich das richtig abfragen oder herausfinden? Wenn zum Beispiel bei der Kontaktaufnahme mit den Vertretern keine Gruppe eingerichtet wird, würde ich alle drei E-Mails nehmen. Wenn eine Gruppe mit diesen drei existiert, würde ich die Gruppen-E-Mail verwenden. – kenshin9

+0

Ich kann nicht an eine Abfrage denken, um das zu lösen, aber was Sie tun sollten, ist (1) alle mit dem Client verbundenen Wiederholungen zu erhalten, (2) alle mit den Wiederholungen des Clients verbundenen Gruppen (3) nach der Gruppe suchen deren Mitglieder die Vertreter des Kunden sind. (4) wenn keine Gruppen gefunden werden, sende an jede Wiederholung, sonst sende an die Gruppe. Berücksichtigen Sie, dass die Wiederholungen eine kleinere Teilmenge einer anderen Gruppe sein können. Daher müssen Sie die Gruppe, in der die von den Wiederholungen gebildete Menge die größte Teilmenge darstellt, abrufen. – Alfredo

+0

Cool, kein Problem. Danke für Ihre Hilfe. – kenshin9

Verwandte Themen