Frage

Ich habe 2 Tische

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

Ich muss diese beiden Tabellen mit verknüpfen.

id und user_id.

Wie kann ich das mit Lebensmittel-CRUD machen?

War es hilfreich?

Lösung

Wenn Sie verwenden OrdersTable Als primäre Tabelle können Sie a verwenden 1:1 Beziehung nutzen set_relation().Dies wäre der Fall, wenn Sie eine Bestellung ansehen und sehen/einstellen möchten, zu welchem ​​Benutzer die Bestellung gehört.

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

Dadurch können Sie den Benutzer für eine bestimmte Bestellung auswählen.

Vermutlich kann ein Benutzer jedoch viele Bestellungen haben – a 1:n Beziehung.Dies wäre der Fall, wenn UsersTable Ihre primäre Tabelle ist, d. h.Du siehst ein user im CRUD und möchten alle zugehörigen Aufträge sehen.

Diese Methode erfordert eine Zwischentabelle, mit der Sie die beiden vorhandenen Tabellen verknüpfen, sowie eine geringfügige Änderung Ihrer vorhandenen Tabellenstruktur.Sie müssten entfernen user_id im OrdersTable.Die Zwischentabelle wird der Argumentation halber genannt UserOrdersTable würde die folgenden Spalten erfordern.

user_id INT
order_id INT
priority INT

Anschließend können Sie die Beziehung mithilfe von hinzufügen set_relation_n_n() Methode.

Sie können das dann umkehren set_relation_n_n() Rufen Sie an, wenn Sie sich das ansehen OrdersTable So können Sie sehen, welcher Benutzer eine Bestellung aufgegeben hat.

Zusammenfassend lässt sich sagen, a 1:n Beziehung nutzen set_relation_n_n() ermöglicht es Ihnen, Bestellungen eines Benutzers und eines Benutzers für eine Bestellung anzuzeigen.

Andere Tipps

Wenn Sie eine Abfrage meinen, dann;

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top