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.