Соглашение об именовании столбцов, которые действуют как PK и FK (отношение подтипа) - PullRequest
0 голосов
/ 14 апреля 2020

Я использую MySQL.

Во всех моих таблицах я использую соглашение об именах первичного ключа в качестве «id» и внешнего ключа в качестве «entity_id». Например:

Animal
---------
id (PK)
hospital_id(FK)

Теперь я реализую отношение категории "сущность", поэтому у меня будут таблицы Cat, Dog, которые являются подтипом таблицы Animal. Итак, какое наименование я должен использовать для этого единственного столбца, который является одновременно PK и FK.

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

Имена 1:

Animal
---------
id (PK)

Cat
---------
id (PK,FK)

Dogs
---------
id (PK,FK)

Стиль именования - Следуйте соглашению первичных ключей.

плюсы - Ничего не меняется.

минусы - Не отображает отношение категории.

Имена 2:

Animal
---------
id (PK)

Cat
---------
animal_id (PK,FK)

Dogs
---------
animal_id (PK,FK)

Стиль именования - Следуйте соглашению о внешнем ключе.

плюсы - Легко узнать, что это внешний ключ.

минусы - Не уверен, что это правильно.

Именование 3:

Animal
---------
animal_id (PK)

Cat
---------
animal_id (PK,FK)

Dogs
---------
animal_id (PK,FK)

Стиль именования - Не уверен.

плюсы - Могут определить отношения с первого взгляда.

минусы - нарушить мой принцип первичного ключа.

I см. проект из принятого решения в Реализация комментариев и лайков в базе данных , если это поможет.

...