Вот то, что я сделал бы:
Это мешает ботам, поскольку Ваша основная страница только показывает незаконченное событие BOC. Боты не будут иметь доступа к URL, не получая его в электронном письме и не иметь никакой гарантии, они получат его вообще.
, Если Вы обеспокоены влиянием продаж, Вы могли бы также простимулировать участие путем отдачи одного или двух BOC для каждой продажи. Если Вы не видите достаточно внедрения на предложении в данном временном интервале, Вы автоматически почтовые дополнительные зарегистрированные пользователи, увеличивая участвующий пул в каждом предложении.
Viola. Единое игровое поле, без тонн эвристики и анализа веб-трафика. Система может все еще играться людьми, настраивающими огромные числа почтовых ящиков, но настраивающий участвующие критерии выбора CC#, счетом PayPal, адрес поставки смягчает это.
Вполне возможно сослаться на ограничение UNIQUE в Oracle FOREIGN KEY:
SQL> create table products (
2 prod_id number not null
3 , prod_name varchar2 (30) not null
4 , constraint prod_pk primary key ( prod_id )
5 , constraint prod_uk unique ( prod_name )
6 )
7 /
Table created.
SQL> create table despatch (
2 desp_id number not null
3 , prod_name
4 , constraint desp_pk primary key ( desp_id )
5 , constraint desp_prod_pk foreign key ( prod_name )
6 references products ( prod_name )
7 )
8 /
Table created.
SQL>
Однако это плохая практика. Основная причина использования первичного ключа вместе с уникальным ключом - предоставить синтетический ключ для использования во внешних ключах. На вашем месте я был бы обеспокоен тем, что ваши учителя дают вам задание, пронизанное плохой практикой .
Это обязательно зависит от СУБД. В СУБД, с которыми я знаком, ограничение уникальности и ограничение внешнего ключа рассматриваются отдельно, вы можете иметь и то, и другое, и оба они действуют нормально в сочетании.