Zahlen EIngaben nur zwischen 1 und 5

Hallo,
ich weiss nicht genau ob mein Post hier richtig ist. Ich habe in meiner Tabelle ein Zahlenfeld. Jetzt möchte ich in dieses Zahlenfeld gern einfache Integer-Werte speichern. Allerdings sollen nur Werte zwischen 0 und 5 möglich sein. Es wäre jetzt schön, wenn es dann eine Meldung geben würde, sobald ein Wert >5 eingegeben wird. Ist so etwas möglich und wenn ja wie. Eventuell gibt es auch eine komplett andere herangehensweise.
Die Zahlen sollen die reihenfolge speichern in der Werte später angezeigt werden sollen. Die Tabelle enthält eine Reihe von Daten. Einige dieser Daten sollen dann später für Berechnungen herangezogen werden. Die Spalte soll nun zum Einen festlegen welche Daten überhaupt angezeigt werden sollen (es soll nur eine Auswahl gezeigt werden). Alle die nicht gezeigt werden sollen, hätten dann den Eintrag 0. wenn der Wert zwischen 1 und 5 liegt, dann ist das die Reihenfolge, die ich später benötige. Der Nutzer soll dann später über eine Weboberfläche die Reihenfolge selber festlegen können. Ich kann natürlich auch hier dann festlegen, dass nur Werte zwischen 0 und 5 ausgewählt werden können. aber vielleicht gibt es eine Möglichkeit so etwas schon auf Datenbank-Ebene zu prüfen?
Zusätzlich wäre es gut wenn überprüft werden könnte, ob es den Wert schon gibt. es darf ja so jeder Wert zwischen 1 und 5 nur einmal vorkommen. Alle anderen Werte wären 0. Es würde ausreichen, wenn man einen Wert neu setzt bei einem Sortier-Feld, dass dann der alte Wert auf 0 gesetzt wird. Geht das überhaupt in einer PostgreSQL DB 8.3? oder sollte ich das lieber über PHP prüfen und machen? Bis zu welchem SChritt wäre sowas in der DB möglich?

Datentabelle

ID | Wert | … | Sortierung
1 10 0
2 15 0
3 16 5
4 25 2
5 78 0
6 45 3
7 74 0
8 33 1
9 32 4
10 16 0
11 …



Vielen Dank schon einmal für Tipps. ich hoffe jedr hat verstanden was ich machen möchte?
Gruss
Hanno

CREATE TABLE limit_werte
( 
    wert integer check (wert between 0 and 5)
);

Exakt, und dazu noch einen unique Index auf limit_werte(wert) where wert > 0, damit man nicht n-fach die 3. Sortierposition angeben kann.

Hint: Check-Conditions, partielle und funktionale Indexe sind immer wieder schön in der Anwendung …


Andreas