Большое количество внешних ключей в MySQL? это хорошо? - PullRequest
2 голосов
/ 11 июля 2011

Привет, ребята (и, вероятно, девушки).Я моделирую огромную базу данных в mysql для компании, в которой я работаю, и застрял в вещах, которые могут мне помочь.

Мой вопрос очень прост: Откуда я знаю, что числовнешних ключей достаточно?

У меня есть 8 таблиц, описывающих следующие данные:

1-е отношение

  • таблица страны (pais)
  • таблица состояний (estado)
  • таблица городов (cidade)

(город => штат => страна)

2-е отношение

  • стол отдела (departamento)
  • стол сектора (setor)
  • стол роли (груз)

(роль => сектор => отдел)

3-е отношение

  • юридическое лицо (entidade juridica)
  • компания (empresa)

(компания => юридическое лицо)

И, наконец, у меня есть девятая таблица с именем employee , и в этой таблице есть ссылки на внешние ключи всех ранее описанных таблиц.


  • (основной) id-colab
  • fone_colaborador
  • fax_colaborador
  • ativo_colaborador
  • email_colaborador
  • (основной) cargo_id_cargo (таблица грузов)
  • (основной) cargo_setor_id_setor (таблица грузов)
  • (основной) cargo_segor_departamento_id_departamento (таблица грузов)
  • (основной) empresa_id_empresa (empresa (empresa_id_empresa (empresa)таблица)
  • (основной) empresa_entidade_juridica_id_entidade_juridica (таблица empresa)
  • (основной) empresa_entidade_juridica_cidade_cidade_id (таблица empresa)

  • 1076 *

  • (fk) empresa table

Основная концепция этой модели:

  • У меня есть реестр юридического лицалицо.
  • юридическое лицо должно быть указано в стране => штат => город

  • У меня есть реестр компании

  • Компания должна сообщить, является ли она филиалом или материнской компанией
  • Компания должна иметь ссылку на таблицу юридического лица (которая владеет адресом, телефоном, идентификатором штата, идентификатором города, идентификатором страны, почтовым кодом и т. Д.)

  • У меня естьрегистр роли

  • Роль должна иметь ссылку на таблицу секторов
  • таблица секторов должна иметь ссылку на таблицу отделов

И, наконец,главная таблица, называемая сотрудником, описана на изображении выше.

Надеюсь, вы, ребята, поняли меня!

Увидимся.

1 Ответ

5 голосов
/ 11 июля 2011

В вашей таблице может быть 100 внешних ключей, если это необходимо для правильной нормализации ваших данных. Не беспокойся о количестве. Не беспокойтесь о том, чтобы ваши поля были атомарными, а ваша схема - нормализованной.

...