Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Consiglio stesura db

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107

    Consiglio stesura db

    Ho la necessità di creare un db che dovrà memorizzare dei form con per lo più delle checkbox (quindi quasi tutti booleani). Ora, considerato che alcuni form vanno compilati quotidianamente mentre altri settimanalmente o mensilmente, non riesco a trovare la miglior soluzione per l'archiviazione di tali dati.

    La situazione è quella di un molti a molti (la tabella degli utenti "user" si lega a quella delle voci presenti nelle liste di controllo "ctrl") che scompongo quindi in "user" 1 -- M "user_ctrl" M -- 1 "ctrl".

    Dato che i controlli saranno praticamente tutti booleani, avevo pensato di non inserire alcun record nel caso il controllo fosse segnato come "true" e di inserire il record solo nel caso di "false" dato che quest'ultimo caso sarebbe di gran lunga il più raro e quindi mi conterrebbe le dimensioni del db.

    Il problema è: se i controlli fossero tutti true...come faccio io a sapere che la lista per il giorno X è stata compilata ma con tutti i campi true?
    Inoltre andrebbe considerato che ogni utente ha degli id "ctrl" personali che sono solo suoi...

    Insomma, fa un po' acqua la stesura per come l'ho pensata...solo che non mi viene in mente altro. Qualcuno potrebbe darmi qualche consiglio?
    Ultima modifica di l736k; 18-04-2014 a 11:26

  2. #2
    se vuoi lavorare per eccezioni, i controlli vanno tabellati; quindi basta fare una left join: quelli che a destra sono NULL puoi equipararli a true (e cioè al default)

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107
    grazie optime per la risposta ma credo di non averla compresa appieno o viceversa: io volevo evitare proprio di inserirli i null per risparmiare spazio nel db...dato che il 99.9% dei valori saranno appunto null. con la tua risposta mi sconsigli quindi questa strada?

    infine, quella di smontare il molti a molti in una tabella con accoppiata di chiavi esterne "user" e "ctrl" invece è l'unica soluzione possibile? non me ne vengono in mente di più adatte...

  4. #4
    se fai una LEFT JOIN vanno a NULL gli elementi a destra proprio perché NON esistono nel db, che è quello che vuoi. fa' due prove e vedrai da solo

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.