Я использую 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 см. проект из принятого решения в Реализация комментариев и лайков в базе данных , если это поможет.