Changes between Version 38 and Version 39 of Индекси


Ignore:
Timestamp:
06/16/25 15:04:37 (25 hours ago)
Author:
183175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Индекси

    v38 v39  
    121121}}}
    122122\\
     123Конкретно, кај '''stock''' и '''sizes''' употребив {{{JOIN}}} и {{{WHERE}}} услов за {{{id_product}}} :
     124{{{#!sql
     125// Детали за еден продукт со залиха > 0
     126app.get("/products/:id", async (req, res) => {
     127  const productId = parseInt(req.params.id);
     128  try {
     129    const productResult = await db.pool.query(
     130      `SELECT id_product, product_name, description, price, color, image_url
     131       FROM products
     132       WHERE id_product = $1`,
     133      [productId]
     134    );
     135
     136    if (productResult.rows.length === 0) {
     137      return res.status(404).json({ error: "Производот не е пронајден." });
     138    }
     139
     140    const stockResult = await db.pool.query(
     141      `SELECT
     142         sz.size_label AS size,
     143         s.quantity,
     144         p.price
     145       FROM stock s
     146       JOIN sizes sz ON s.id_size = sz.id
     147       JOIN products p ON s.id_product = p.id_product
     148       WHERE s.id_product = $1 AND s.quantity > 0
     149       ORDER BY
     150         CASE sz.size_label
     151           WHEN 'S' THEN 1
     152           WHEN 'M' THEN 2
     153           WHEN 'L' THEN 3
     154           WHEN 'XL' THEN 4
     155           ELSE 5
     156         END`,
     157      [productId]
     158    );
     159}}}
     160\\
     161За сега овој индекс за оваа табела е доволен, доколку понатаму го надоградуваме системот ке биде потребно \\
     162индексирање за пребарување по име на продукт или филтрирање по други атрибути како боја, цена...
     163\\
    123164'''3. Индекси на {{{customers}}} табелата'''\\
     165При најава на корисник е потребно внес на {{{email}}} и {{{id_role}}}, па затоа ке поставиме индекси.\\
     166Индекс на {{{email}}} ке го забрза пребарувањето на корисници при најава и регистрација.\\
     167Индекс на {{{id_role}}} го забрзува филтрирањето по улога, односно дали е корисник или админ.\\
     168{{{#!sql
     169CREATE UNIQUE INDEX idx_customers_email ON customers(email);
     170CREATE INDEX idx_customers_role ON customers(id_role);
     171}}}
     172\\