Я собираю данные, которые генерируются машиной.В настоящее время я использую программный маршрутизатор OPC для передачи данных машины через OPCUA в базу данных MySQL, управляемую phpMyAdmin.Чтобы увеличить производительность и уменьшить объем используемой памяти, я подумал о моделировании БД как-то так:
Теперь я спрашиваю себя:
Еслимашина отправляет данные (например, имя машины "5264"), может ли база данных автоматически ввести соответствующий FK "machine_ID" из таблицы "machines" в "machine1" в виде целого числа вместо ввода имени машины "5264"?
Я уже пытался сначала записать данные в дополнительную таблицу, а затем вставить триггер после вставки.Этот триггер должен затем выполнить команду вставки для каждого столбца в соответствующие таблицы с соответствующими идентификаторами вместо полных имен.Здесь я потерпел неудачу, потому что не смог выполнить более одной команды вставки в одном триггере, хотя я использовал BEGIN и END.
Код, который я использовал для триггера, выглядит так:
BEGIN
INSERT INTO products(Name)
SELECT t1.Product_Name
FROM transfer_data t1
WHERE NOT EXISTS(SELECT products.Name
FROM products t2
WHERE t2.Name = t1.Product_Name)
INSERT INTO operators
(operators.First_Name, operators.Last_Name)
SELECT t1.Operator_First_Name, t1.Operator_Last_Name
FROM transfer_data t1
WHERE NOT EXISTS(SELECT operators.First_Name, operators.Last_Name
FROM operators t2
WHERE t2.First_Name = t1.Operator_First_Name
AND t2.Last_Name = t1.Operator_Last_Name)
END;
Будем рады услышать ваше мнение о моем плане и, надеюсь, получить некоторую помощь.