Что ж, в реальном мире существует такая группа, как этническая группа, поэтому вам нужны две таблицы, а не одна. В реальном мире есть три уровня (самый верхний - Гонка), но я понимаю, что в этом нет необходимости. Если вы разбиваете три уровня на два, вы должны быть осторожны и правильно выложить их в начале. Тем не менее, они будут уязвимы для людей, которые говорят, что хотят настоящего, и вам, возможно, придется изменить его или изменить структуру, чтобы она больше подходила ... гораздо больше работы позже).
Если вы делаете это правильно, в соответствии с реальным миром, эта проблема устранена. Дайте мне знать, если вы хотите Race, и я поменяю модель.
Таблицы слишком малы, а ключи слишком значимы, чтобы добавить к ним столбцы Id-iot; оставьте их как чистые реляционные ключи, иначе вы потеряете силу реляционного движка. Если вам действительно нужны узкие ключи, используйте CHAR (2) EthnicityCode, а не NUMERIC (10,0) или бессмысленное число.
Ссылка на модель данных об этнической принадлежности (плюс ответ на другой вопрос)
Ссылка на нотацию IDEF1X для тех, кто не знаком со стандартом реляционного моделирования.