Установка отношений Бакалея CRUD - PullRequest
0 голосов
/ 04 декабря 2011

у меня 2 таблицы

Users Table => id , username
OrdersTable => order_id,user_id, qty,total

Мне нужно связать эти две таблицы с.

id и user_id.

как я могу сделать это с продуктом CRUD.

Ответы [ 2 ]

3 голосов
/ 04 декабря 2011

Если вы используете OrdersTable в качестве основной таблицы, вы можете использовать отношение 1:1, используя set_relation () . Это было бы, если бы вы просматривали заказ и хотели видеть / установить, к какому пользователю относится заказ.

$crud->set_table('OrdersTable');
$crud->set_relation('id','UsersTable','username');

Это позволит вам выбрать пользователя для определенного заказа.

Однако, предположительно, у пользователя может быть много заказов - отношение 1:n. Это будет иметь место, если UsersTable является вашей основной таблицей, то есть вы просматриваете user в CRUD и хотите увидеть все связанные заказы.

Для этого метода требуется промежуточная таблица, с которой вы связываете две существующие таблицы, и небольшое изменение в существующей структуре таблицы. Вам нужно будет удалить user_id в OrdersTable. Промежуточная таблица для аргумента UserOrdersTable требует следующих столбцов.

user_id INT
order_id INT
priority INT

Затем вы можете добавить отношение, используя метод set_relation_n_n () .

Затем можно просмотреть вызов set_relation_n_n() при просмотре OrdersTable, чтобы вы могли увидеть, какой пользователь сделал заказ.

В итоге, отношение 1:n с использованием set_relation_n_n() позволит вам просматривать заказы пользователя и пользователя для заказа.

0 голосов
/ 04 декабря 2011

Если вы имеете в виду запрос, то;

select u.id, u.username, o.order_id, o.qty, o.total
from users u
left join orders o on(o.user_id = u.id)
where 1=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...