2017-03-21 3 views
-1

Ich habe eine Tabelle von ZeitplänenConstraints verschiedene Momente

Also meine Frage ist das: Wie kann ich eine Einschränkung zu verbieten ein Werte nicht mehr als einmal pro Tag geplant werden. Vielen Dank.

+2

erstellen eindeutigen Index (Schiff, Datum) –

+0

Danke @Lashane es hat funktioniert! –

Antwort

0

Fügen Sie einfach eine eindeutige Einschränkung/Index auf dem Schiff und Datum:

create unique index unq_tourschedule_vesselid_tourdate on tourschedule(vesselid, tourdate); 

(A eindeutige Einschränkung implementiert einen eindeutigen Index verwenden.)

Sie sollten in der Datenbank tun dies, so auch Manuelle Änderungen an den Daten erzwingen diese Einschränkung.

0

Es hängt davon ab, auf welcher Ebene Sie die Planung "verhindern" müssen. Möchten Sie es auf der Benutzeroberfläche, auf der mittleren Ebene oder auf Datenbankebene verhindern?

  • UI - Führen Sie einen AJAX-Check gegen DB oder Middle-Tier-Kontrolle und verhindert Einfügen des Datensatz gibt (nicht eine sichere Lösung, aber erwähnenswert, weil es Ihren Anwender von einem vorhandenen Datensatz informiert).

  • Mittlere Stufe - bester Platz. Fragen Sie Ihre Datenbank ab, um zu sehen, ob ein Datensatz mit der angegebenen Schiffs-ID und dem angegebenen Tour-Datum existiert. Wenn Datensätze zurückgegeben werden, lassen Sie das Einfügen nicht zu. Sie können dann mit einer hilfreichen Nachricht an den Benutzer auf die Seite umleiten. Die Geschäftslogik wird hier typischerweise verwendet, und es ist am besten, Ihre Geschäftslogik von Ihrer Datenbank zu entkoppeln.

  • Datenbankebene - am robustesten, aber am wenigsten wartbar und schlecht für die Sichtbarkeit von Geschäftslogik. Viele Optionen, alle von ihnen umständlich:

Stored Procedure - bei Einsatz, überprüfen Sie die Datensätze, die gleiche Prozedur wie mittlere Ebene, aber Sie haben Ihre „Fehler“ -Meldung Trichter nach oben durch alle Ebenen.

Compound-Schlüssel mit vesselID und TourDate stellt automatisch sicher, dass nur eindeutige Einträge eingefügt werden können.

Einschränkung der Tabelle Daten beim Einfügen - nicht nur ein Index, der für die Suche Optimierung, sondern eine tatsächliche Einschränkung ist. Diese Einschränkung kann zu einer vorhandenen Tabelle hinzugefügt werden oder Teil der Tabellenerstellungsanweisung selbst sein.

0

Ja ich habe einen eindeutigen Index erstellt und alles hat funktioniert, danke, dass Sie mir geholfen haben.