MySQL stöder inte lagring av arrayer. Du kan dock använda en andra tabell för att emulera en array genom att lagra relationen mellan användarna och objekten. Säg att du har tabellen users
:
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
...
);
Och du har en tabell som definierar items
:
CREATE TABLE items (
item_id SERIAL PRIMARY KEY,
...
);
Du kan relatera vilka objekt en användare har med hjälp av en tabell som liknar 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)
);
Sedan, för att avgöra vilka objekt användare 123
har förvärvat kan du använda JOIN liknar:
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.