Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

coluna mySQL para armazenar array


O MySQL não suporta o armazenamento de arrays. No entanto, você pode usar uma segunda tabela para emular uma matriz armazenando a relação entre os usuários e os itens. Digamos que você tenha a tabela users :
CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    ...
);

E você tem uma tabela definindo items :
CREATE TABLE items (
    item_id SERIAL PRIMARY KEY,
    ...
);

Você pode relacionar quais itens um usuário possui usando uma tabela semelhante a user_items :
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)
);

Em seguida, para determinar quais itens o usuário 123 adquiriu, você pode usar JOIN é semelhante a:
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.