Я читал больше о представлениях в MySQL (не являясь моей сильной стороной), но теперь мне интересно, есть ли у кого-нибудь пример того, как вставить строку в представление, состоящее из более чем одной таблицы, где есть такое отношение супертип и подтип?
Например, иерархия «партийной модели» с указанием ролей работодателя и персонала:
party
_ _ | _ _
| |
employer staff
Таблицы для которых (упрощенно):
party employer staff
-------------------------------- --------------------- -----------------
party_ID INT auto_increment (PK) party_ID INT (FK) party_ID INT (FK)
party_name VARCHAR tax_reference VARHCAR job_title VARCHAR
etc... etc... etc...
Я знаю, что могу создать представление для рассмотрения только соответствующих отношений:
CREATE VIEW staff_view AS SELECT party.party_ID, etc... FROM party INNER JOIN staff
Когда я добавляю сотрудника, я хочу создать запись в таблице участника, а затем сослаться на автоприращение party_ID
в таблице персонала. Я не вижу, как выполнить вставку в одном выражении, что-то вроде:
INSERT INTO staff_view (party_name, job_title, etc...) VALUES ('John Doe', 'CEO', etc)
Я знаю, что могу достичь этого программно, но я надеюсь, что есть способ сделать это непосредственно в базе данных и сохранить ссылочную целостность. Как бы вы подошли к этому вопросу?
(документация MySQL: http://dev.mysql.com/doc/refman/5.1/en/view-updatability.html)