MySQL understøtter ikke lagring af arrays. Du kan dog bruge en anden tabel til at efterligne en matrix ved at gemme relationen mellem brugerne og elementerne. Lad os sige, at du har tabellen users
:
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
...
);
Og du har en tabel, der definerer items
:
CREATE TABLE items (
item_id SERIAL PRIMARY KEY,
...
);
Du kan relatere hvilke elementer en bruger har ved at bruge en tabel, der ligner 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)
);
Derefter, for at bestemme, hvilke elementer bruger 123
har erhvervet, kan du bruge JOIN ligner:
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.