Приветствую.
Никогда не приходилось сталкиваться с процедурами и функциями в MySQL
возникла задача, возможно ли ее и как решить:
раньше была структура вида
tableA:
id
text
tableB:
id
pid <= tableA.id
text
при выполнении действия, данные из tableA копировались в tableB, что при большом количестве тупо увеличивает размер базы.
Работа ведется с tableB Только
Понятно можно переписать все используя JOIN, но вот подумал может ли справиться с этим хранимая функция MySQL
Задача такая:
все запросы к tableB
SELECT * FROM tableB вызывали бы функцию которая бы подставляла в pid и text значения из tableA
Буду благодарен за любые советы
1. RomAndry - 09 Мая, 2011 - 00:01:15 - перейти к сообщению
2. Champion - 09 Мая, 2011 - 07:20:28 - перейти к сообщению
Если таблицы связаны 1-к-1, то можно просто их объединить.
Если нет, то можно JOIN, в нем ничего плохого.
А можно создать вьюшку:
и пользоваться этим SELECT * FROM tableAB.Если нет, то можно JOIN, в нем ничего плохого.
А можно создать вьюшку:
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CREATE VIEW tableAB
- AS
- SELECT a.id AS a_id, a.text AS a_text, pid, b.id, b.text
- FROM tableB
- JOIN tableA ON pid = a.id
Это лучше, чем функции и процедуры, потому что если писать потом условия в where, то индексы по таблицам не будут использоваться