Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [mySQL] db turni negozi

    Ciao gente,
    ho bisogno di un consiglio da esperi in maniera.

    Devo creare un database contenente schede di negozi (ragione sociale, tel, tipologia, etc.), e inserire i turni di apertura per ogni giorno dell'anno. I turni non sono fissi e devono essere inseriti dall'operatore periodicamente (11/11/2005 negozio A aperto, negozio B chiuso, negozio C aperto).

    Lo pensata così:
    tabella schede: tutti i negozi con i campi che indicano le caratteristiche.
    tabella turni: (e quì mi incasino... :master: ), tanti campi quanti sono i negozi, ogni record è una data dell'anno, e nei campi un integer 0,1 che indica se è aperto o chiuso.

    Non sono sicuro che però questa sia la strada giusta e vorrei sapere come lo fareste voi.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    Potresti fare in questo modo:
    Tabella_negozzi: id_negozio, ragionesociale, ecc...
    Tabella_chiusura: id_negozio, data_inizio, data_fine

    L'utente avrà cura di inserirsi i suoi giorni di chiusura.
    Quando devi esporre i negozi vai a vedere se sono chiusi per quel giorno, altrimenti di default è aperto.

    Spero di esserti stato di aiuto.

  3. #3
    hmmmm, però vedi i turni di chiusura sono variabili, cioè se questa settimana chiude la domenica, la settimana prossima può darsi che chiuda il lunedì. Come dici tu può andare bene se i turni sono bene o male sempre gli stessi, e poi può inserirli solo una volta alla settimana. A me serve qualcosa un pò elastico dal punto di vista periodico; cioè l'utente si inserisci i turni in maniera settimanale ma su di un calendario annuo.

    PS. Creare una tabella con 700 record rispettivi ad ogni giorno dell'anno X 2, è un'oprazione accettabile?

  4. #4
    Datemi un consiglio:

    una tabella con massimo 700 record e 130 campi dove all'interno sarà presente solo un valore integer da 1 a 10 mi mette in ginocchio il database??

  5. #5
    potresti fare una tebella con tutti i negozi, una tabella con tutti i vari turni esistenti e una tabella di "join" che unisce il negozio al rispettivo turno

  6. #6
    si, questa è l'idea, ma non sono sicuro che creare una tabella con circa 700 giorni (records) e 130 negozi(campi) non penalizzi le performance del database.

    Qualche consiglio su l'uso degli indici?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    prova con
    Tabella_negozzi: id_negozio, ragionesociale, ecc...
    Tabella_chiusura: id ,id_negozio, data, chiuso

    id chiave primaria, id_negozio, data indice1, data indice2
    metterai nella seconda tebella solo i giorni in cui è chiuso il negozio se non c'è record allora è aperto.
    100.000 record non sono molti se ben indicizzati.

  8. #8
    non conosco le performance di mysql ma di sicuro non sarebbe un gran che "leggibile" come db

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    Originariamente inviato da stabi
    prova con
    Tabella_negozzi: id_negozio, ragionesociale, ecc...
    Tabella_chiusura: id ,id_negozio, data, chiuso

    id chiave primaria, id_negozio, data indice1, data indice2
    metterai nella seconda tebella solo i giorni in cui è chiuso il negozio se non c'è record allora è aperto.
    100.000 record non sono molti se ben indicizzati.
    in realtà la tabella se usi questa logica basetebbe che fosse

    Tabella_chiusura: id ,id_negozio, data

    ed avresti max 6/8 mila record anno (52 chiusure anno per negozio)

  10. #10
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    Non è ben chiaro cosa tu voglia fare.
    Tabella Negozi.
    Tabella Turni.
    Tabella Eccezioni aperture.
    Tabella Eccezioni chiusure.
    La tabella negozi viene popolata con i dati dei negozi.
    Tabella turni:
    -turno 1 chiuso il lunedì (potresti strutturararla 1,0,0,0,0,0,0)
    -turno 2 chiuso il martedì (potresti strutturararla 0,1,0,0,0,0,0)
    -ecc....
    In un form il negozio ti dichiara "appartengo al turno 1" e tu sulla tavola negozi memorizzi il dato.
    Form eccezioni aperture il cliente ti dichiara "il giorno x dovrei essere chiuso ma sono aperto" e viceversa per eccezioni chiusure, di conseguenza vai a memorizzare il giono sulla tavola apposita.

    In fase di visualizzazione dati all'utente leggi le tabelle in ciclo con i dovuti calcoli da fare.

    Per velocizzare il tutto si deve fare una tavola di appoggio leggendo i dati da quelle tabelle con i giorni dichiarati al suo interno in modo da leggere il dato su una tabella unica, ma non penso sia il tuo caso.

    Non so cosa devi fare tu di preciso ma quando utilizzi grosse mole di dati si utilizza una struttura del genere (130 negozi non è una grossa mole!).

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.