2017-04-26 7 views
0

Ich habe eine Tabelle participants genannt:Wie wird die is_unique Formularvalidierung innerhalb eines bestimmten Datensatzbereichs verwendet?

CREATE TABLE IF NOT EXISTS `participants` (
    `id` int(8) NOT NULL AUTO_INCREMENT, 
    `email` varchar(30) NOT NULL, 
    `name` varchar(40) NOT NULL, 
    `birthdate` date NOT NULL, 
    `personal_number` varchar(16) DEFAULT NULL, 
    `phone` varchar(16) NOT NULL, 
    `photo` varchar(100) NOT NULL, 
    `address` text NOT NULL, 
    `city_id` int(3) DEFAULT NULL, 
    `tournament_id` int(8) NOT NULL, 
    `time_created` datetime NOT NULL, 
    `time_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`), 
    KEY `city_id` (`city_id`), 
    KEY `tournament_id` (`tournament_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Die Regel für die Erstellung von Teilnehmer ist jede registrierte E-Mail-Adresse kann in ein Turnier (Fremdschlüssel tournament_id) nur teilnehmen; daher zwei Datensätze mit der gleichen E-Mail-Adresse aber anderstournament_id sollte zulässig sein.

Ist is_unique Formularvalidierung in der Lage, diesen Vorgang zu tun? Oder sollte ich einen Rückruf oder einen Helfer erstellen?

Antwort

1

is_unique ist nur ein Kurzname für value_does_not_already_exists_in_a_single_column.

Also, nein - es wird nicht funktionieren; Sie benötigen einen Rückruf.

Verwandte Themen