|
Автоматическое добавление id из "посторонней" таблицы
|
|||
---|---|---|---|
#18+
Рассмотрим ситуацию. Например: есть таблица Contact, Message, History. Contact хранит в себе id, name, Message хранит в себе id, text, History содержит в себе id_Contact (какой то контакт из Contact), id_Message (какое то сообщение из Message) и еще какую то информацию, например "время создания сообщения", не суть важно... И как реализовать логику: что созданное сообщение связано с конкретным контактом. Как это можно реализовать? Я начал с тригера на Message на событие INSERT без условия: INSERT INTO History(id_Message) VALUES (new.id); В таблице История не сложно сослаться на ID сообщения, при создании сообщения, а как быть с контактом? Неужто нету способа автоматизировать добавление контакта и в ручную надо будет добавлять ID контакта типа через отдельный SQL запрос: INSERT INTO History(id_Contact) VALUES (SELECT id FROM Contacts WHERE name='Искомое имя'); ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 16:37 |
|
Автоматическое добавление id из "посторонней" таблицы
|
|||
---|---|---|---|
#18+
Если History должна содержать пару (id_Message, id_Contact), то и добавляй эту пару значений. В чем проблема то??? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 18:08 |
|
Автоматическое добавление id из "посторонней" таблицы
|
|||
---|---|---|---|
#18+
Добавить проблем нету, ищу возможность "красиво" добавить: то есть выполнить добавление id_Contact в таблицу History в одной транзаеции с добавлением id_Message в таблицу History и добавлением сообщения в таблицу Message. Тем самым уменьшив кол-во запросов к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 18:40 |
|
Автоматическое добавление id из "посторонней" таблицы
|
|||
---|---|---|---|
#18+
Мне сильно кажется, что ты либо неправильно описал структуру своих таблиц, либо неправильно описал процесс, либо не видишь очевидного. Что конкретно хранится в твоей таблице Message? Там лежит заранее подготовленный список сообщений которые в принципе могут быть посланы. Или туда кладутся все свободно-сочиненные сообщения которые кому-то захотелось послать? В первом случае тебе действительно будет нужна таблица History, но в момент собственно посылки сообщения ты не будешь обновлять таблицу Message. Во втором случае, тебе нафиг не нужна таблица History, достаточно добавить поля "адресат" и "время посылки" в таблицу Message. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2010, 20:52 |
|
|
start [/forum/topic.php?fid=54&msg=36993980&tid=2009262]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 330ms |
total: | 495ms |
0 / 0 |