Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Spalte zum Halten des Arrays

MySQL unterstützt das Speichern von Arrays nicht. Sie können jedoch eine zweite Tabelle verwenden, um ein Array zu emulieren, indem Sie die Beziehung zwischen den Benutzern und Elementen speichern. Angenommen, Sie haben die Tabelle users :

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    ...
);

Und Sie haben eine Tabelle, die items definiert :

CREATE TABLE items (
    item_id SERIAL PRIMARY KEY,
    ...
);

Sie können anhand einer Tabelle, die user_items ähnelt, in Beziehung setzen, welche Artikel ein Benutzer hat :

CREATE TABLE user_items (
    id SERIAL PRIMARY KEY,
    user_id BIGINT UNSIGNED NOT NULL,
    item_id BIGINT UNSIGNED NOT NULL,
    ...,
    FOREIGN KEY (user_id)
        REFERENCES users (user_id),
    FOREIGN KEY (item_id)
        REFERENCES items (item_id)
);

Um dann zu bestimmen, welche Elemente Benutzer 123 verwenden erworben hat, können Sie JOIN verwenden ist ähnlich wie:

SELECT items.*
FROM users
INNER JOIN user_items
    ON user_items.user_id = users.user_id
INNER JOIN items
    ON items.item_id = user_items.item_id
WHERE users.user_id = 123; -- Or some other condition.