Здравствуйте! Ломаю голову на счет связей таблиц в Yii. Допустим, мы имеем три таблицы и данные в этих таблицах:
Lookup - (id, type, code, title) - в таблице хранятся данные валют, просто их code и title
1, price_currency, 10, rur
2, price_currency, 20, usd
2, price_currency, 30, eur
StoreItem - (id, name, price, price_currency) - таблица предметов с ценами и валютой (где price - это цена, а price_currency - записанный code валюты)
1, предмет №1, 1000, 10
2, предмет №2, 2000, 20
3, предмет №3, 1000, 30
CrossCourse (sell, buy, course) - таблица кросс-курсов валют. Тут все понятно.
rur, rur, 1
usd, rur, 50
eur, rur, 60
-------------------------------
Теперь о моделях и их связях:
По-идее, в модели
StoreItem мы должны сделать связь с
Lookup, для того получить название валюты (code), и соответственно как-то получить связь с
CrossCourse, чтобы мы получили поле курс валютной пары (course).
Что я пытался сделать:
Я пытался выставить MANY_MANY связь к таблице Lookup, но у меня не получилось этого сделать, потому что он не правильно формировал LEFT JOIN запрос. Он пытался соединить
t.id = t.code, а нужно
t.price_currency = t.code
P.S В дальнейшем цена будет формироваться в поле (price * course) AS price_course
P.S.S Поля code, price_currency, course - не уникальные, не имеющие ключа