sql >> Base de Datos >  >> RDS >> Mysql

columna mySQL para contener matriz

MySQL no admite el almacenamiento de matrices. Sin embargo, puede usar una segunda tabla para emular una matriz almacenando la relación entre los usuarios y los elementos. Digamos que tiene la tabla users :

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

Y tienes una tabla que define items :

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

Puede relacionar qué artículos tiene un usuario usando una tabla similar 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)
);

Luego, para determinar qué artículos, el usuario 123 ha adquirido, puede usar JOIN es similar 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.