Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [MYSQL] suggerimento progettazione database prodotti basato su catalogo cartaceo

    Ciao a tutti,
    sto cercando di costruire un database per una pagina prodotti di un sito web con i prodotti ripresi da un catalogo cartaceo di 500+ pagine.
    Semplificando al massimo posso dire che ogni prodotto e' rappresentato da una o piu' pagine di questo catalogo salvate in formato jpg. E quindi con un riferimento preciso al numero di pagina. E' la richiesta del cliente...
    Il mio problema non e' quello di costruzione iniziale del db quanto il suo aggiornamento futuro.
    Perche' puo' facilmente capitare che nel catalogo cartaceo venga inserito un nuovo prodotto in una qualsiasi posizione del catalogo. Quindi, a partire da quella posizione, il numero di pagina verra' incrementate di un numero pari al numero di pagine inserite.
    Sto cercando di capire come progettare il db per permettermi di gestire l'aggiornamento del catalogo.
    Penso ad una tabella Prodotti in cui ogni record contiene il riferimento alla Pagina. E una tabella Pagine che contiene tutti i riferimenti alle pagine del catalogo.
    Pero' in fase di aggiornamento devo aggiornare TUTTI i prodotti a partire dal numero di pagina aggiornato.
    Esiste un modo per rendere dinamico il collegamento Prodotto > Pagina?
    Un qualcosa che, cambiando la tabella Pagine mi vada ad aggiornare il campo Pagina nella tabella Prodotti?
    Fantascienza?
    In che altro modo posso uscirne?
    Ciao e grazie in anticipo per qualsiasi suggerimento.

    Tony

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Più che fantascienza, mi sembra un'idea folle. Che senso ha avere un database che si basa sui numeri di pagina del catalogo? Semmai dovrebbe essere il catalogo ad uscire come conseguenza del db.

  3. #3
    Quote Originariamente inviata da luca200 Visualizza il messaggio
    Più che fantascienza, mi sembra un'idea folle. Che senso ha avere un database che si basa sui numeri di pagina del catalogo? Semmai dovrebbe essere il catalogo ad uscire come conseguenza del db.
    Ti quoto in toto.
    Ma si tratta della classica eccezione. Il catalogo cartaceo, in realta' e' un hyper-catalogo cartaceo con rimandi in ogni pagina. Ogni pagina contiene 'collegamenti' (tanti; almeno una decina per pagina) ad altre pagine. E' un catalogo cartaceo molto complesso, dal punto di vista dei rimandi o riferimenti incrociati. E quindi il numero di pagina e' cruciale.
    Io dovrei riproporre qualcosa che gli assomigli a livello web. Ma ricostruire l'intero catalogo e' economicamente non remunerativo. La soluzione pare essere quella di presentare un simil catalogo cartaceo on-line.
    Senza dimenticare che nel tempo questo catalogo viene aggiornato.
    Io immaginavo una tabella di tutte le pagine del catalogo. Aggiorno il catalogo cartaceo e aggiorno la tabella delle pagine. Fin qui e' facile.
    Poi immaginavo una tabella prodotti in cui specifico per ogni prodotto la pagina iniziale e la pagina finale.
    Mi manca il meccanismo che, all'aggiornamento del catalogo (tabella pagine), mi permetta di aggiornare il numero di pagina iniziale e finale di ogni prodotto.
    Esempio: aggiungo il prodotto X che occupa 4 pagine dalla 320 alla 323.
    In pratica dovrei aggiornare tutti i riferimenti delle pagine che fanno riferimento (scusate il gioco di parole) alle pagine dalla 320 in poi, incrementandoli del numero di pagine occupate dal nuovo prodotto (+4).
    Si puo' fare una UPDATE che mi seleziona un range di prodotti (in base alle pagine inziali e finali) e mi incrementi due campi di 4? (e qui scatta la mia conoscenza superfiaciale di mysql ).
    Alla peggio faccio delle UPDATE MANUALI. Si tratta di due o tre aggiornamenti all'anno.

    Hellppp!
    tony

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    update tabella set prima_pagina = prima_pagina + 4, ultima_pagina = ultima_pagina + 4 where prima_pagina >= x

  5. #5
    In realtà è molto facile. Hai davvero bisogno di una tabella pagina? Credo di no...

    La tabella prodotto deve avere una colonna pagina. Quando inserisci un nuovo prodotto alla pagina X, e il prodotto occupa N pagine, devi eseguire un'istruzione del tipo:

    UPDATE prodotto SET pagina = pagina + N WHERE pagina >= X;
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.