Например: у меня есть таблица «история» с внешним ключом, который может указывать на разные таблицы/объекты в зависимости от значения поля.
История таблицы:
create table history(
id int PimaryKey AUTO_INC,
elementid int, (ForeignKey)
elementtype varchar
)
эта таблица заполняется, например:
id ElementId ElementType
1 1 Device
2 2 Simcard
3 2 Simcard
это говорит о том, что у нас есть
- 1 запись для объекта типа "Устройство" с идентификатором "1"
- 2 записи для сущности типа "Симкарта" с id "2"
цель состоит в том, чтобы иметь таблицу, которую можно было бы использовать для нескольких сущностей.
Это правильный способ интеграции динамического внешнего ключа? Я также подумал о создании списка с таблицами/сущностями, на которые можно ссылаться. Таким образом, таблица будет выглядеть так:
ALTER TABLE history MODIFY ElementType INTEGER;
ElementType будет означать:
create table entities(
id int PimaryKey AUTO_INC,
name varchar
)
история новой таблицы заполняется, например:
id ElementId ElementType
1 1 1
2 2 2
3 2 2
Таблица сущностей заполняется, например:
id name
1 Device
2 Simcard