2017-03-13 2 views
-1

Ich arbeite an einem Projekt, wo Unternehmen Konten erstellen können, dann können diese Unternehmen eine Reihe von Vertretern haben. Die Vertreter werden Angebote an andere Unternehmen innerhalb des Systems senden. Angebote können an mehrere Unternehmen gleichzeitig gesendet werden, und jedes Unternehmen sollte die Möglichkeit haben, aus einer Dropdown-Liste zu wählen, wenn sie die Angebote, die sie erhalten, annehmen, verweigern und zurückstellen möchten. Ich arbeite mit PHP und bisher habe ich alles erstellt und es funktioniert aber. Wenn ein Vertreter, der für das Geschäft C arbeitet, ein Angebot an die Unternehmen A und B sendet, sollten A und B in der Lage sein, das Angebot zu sehen und ihren Status im Angebot zu ändern, wenn sie akzeptieren \ verweigern \ halten möchten. Wie soll ich die Datenbank strukturieren, um dies möglich und effizient zu machen? Ich habe derzeit eine Tabelle für "Unternehmen" Eine Tabelle für "Business Details" Eine Tabelle für "Mitarbeiter" eine Tabelle für "Angebote". Wenn ein Mitarbeiter ein Angebot an ein Unternehmen sendet, werden diese Geschäfts-IDs in der Tabelle "Angebot" als Zeichenfolge gespeichert und ich lade die Details des Angebots an alle Unternehmen ab, die ihre ID innerhalb dieser Zeichenfolge in den "Angeboten" haben " Tabelle. Aber auf diese Weise können mehrere Unternehmen das Angebot einsehen, aber wenn sie ihren eigenen Stand-Alone-Status über das Angebot ändern wollen, bekomme ich das Problem, um das ich um Hilfe ersuche.Datenbank-Design für mehrere Client-Angebot mit Status-Update

Vielleicht auf Business-Erstellung sollte ich eine zusätzliche Abfrage wie 'Create table' . $business_name . '_offers' ; machen, so dass jedes Mal, wenn ein Geschäft erstellt wird, eine Tabelle für ihre Angebote erstellt wird, aber wie kann ich die Felder für die neu erstellte Tabelle definieren?

Bitte beachten Sie, dass ich später auch Benachrichtigungen über die Statusänderungen der Angebote senden muss. Ich habe dies nie getan und jede Hilfe mit den Abfragen \ Struktur würde geschätzt werden. Entschuldigung für die lange Post. Vielen Dank!

Antwort

1

Klingt, als ob Sie eine Vermittler-Tabelle zwischen Unternehmen und Angeboten benötigen. Es wäre so etwas wie:

BusinessOffersTable 
    OfferID 
    BusinessID 
    Status 

Es ist ein viel viele Tisch, so dass für jedes neue Angebot, das erstellt wird, Sie einen Datensatz für jedes Unternehmen fügen Sie es gesendet wird. Dann kann jedes Unternehmen den Status für jedes einzelne Angebot selbst ändern.

OfferID BusinessID Status 
1   1    a 
1   2    b 
1   3    a 
2   1    a 
2   2    b 
2   3    a 
+0

Das klingt großartig! Danke vielmals! – Mar1AK

+0

Glauben Sie, dass es Leistungsprobleme mit dieser speziellen Tabelle geben wird, wenn die Daten darin sehr groß werden? mehr als 500k Felder? – Mar1AK

+0

Das ist eine Standardmethode, um so etwas zu tun - stellen Sie einfach sicher, dass Sie die benötigten Indizes haben. Ich hatte noch nie ein Problem mit dieser Art von Tisch. – PhillipXT

Verwandte Themen