Executando verificação de segurança...
5

Para implementar a funcionalidade 'Quem se interessou por isso, também procurou por...', recomendo estudar sistemas de recomendação, que variam desde o trivial ao muito complexo, para um protótipo porém se atenha ao simples.

Uma abordagem trivial por exemplo: Suponha que você tenha tabelas para carrinhos e produtos. Faça uma consulta SQL que selecione produtos com base na frequência com que aparecem nos mesmos carrinhos do produto visitado, ordenando os resultados pela frequência e limitando aos 5 primeiros resultados, por exemplo. Este é um método que pode ser implementado com algumas linhas de SQL.

CREATE OR REPLACE FUNCTION get_product_recommendations(given_product_id INT)
RETURNS TABLE(product_id INT, frequency INT) AS $$
BEGIN
    RETURN QUERY
    WITH RelevantCarts AS (
        SELECT cart_id
        FROM carts
        WHERE product_id = given_product_id
    ),
    ProductFrequency AS (
        SELECT p.product_id, COUNT(*) as frequency
        FROM carts c
        JOIN products p ON c.product_id = p.product_id
        WHERE c.cart_id IN (SELECT cart_id FROM RelevantCarts)
          AND p.product_id != given_product_id
        GROUP BY p.product_id
    )
    SELECT product_id, frequency
    FROM ProductFrequency
    ORDER BY frequency DESC
    LIMIT 5;
END;

Aí é so chamar essa função diretamenta do seu JS, SELECT product_id FROM get_product_recommendations(id);

Caso seja do seu interesse aprender mais sobre sistemas de recomendação, alguns livros para orientar seus estudos: Recommender Systems: An Introduction; Practical Recommender Systems; Recommender Systems: The Textbook.

Um abraço e bons estudos!

Carregando publicação patrocinada...