Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74

    tabella con unica entry

    Ciao!
    Ho un database con una tabella "corsi" a cui puntano molte altre tabelle. Vorrei che in questa tabella corsi l'amministratore potesse inserire una sola entry(l'unico corso possibile) e poi basta. Se si tenta di inserire un altro corso con una INSERT mysql dovrebbe impedirlo. si può fare o è fantascienza?

  2. #2

    Re: tabella con unica entry

    [supersaibal]Originariamente inviato da jegger
    Ciao!
    Ho un database con una tabella "corsi" a cui puntano molte altre tabelle. Vorrei che in questa tabella corsi l'amministratore potesse inserire una sola entry(l'unico corso possibile) e poi basta. Se si tenta di inserire un altro corso con una INSERT mysql dovrebbe impedirlo. si può fare o è fantascienza? [/supersaibal]
    Se si tratta di vincolare un campo ad un nome usa ENUM

    http://dev.mysql.com/doc/mysql/en/enum.html


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Si, se fai nella tabella come chiave primaria un campo che abbia tipo enum con un solo possibile valore, hai ottenuto una tabella con una sola riga.

    Ma... a che scopo? Se nel db ci deve essere sempre e solo un corso alla volta, perchè complicarsi la vita? Memorizza le info del corso in un file, oppure anche in una tabella nella quale non fai inserire se il record count non è zero...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    [supersaibal]Originariamente inviato da Shores
    Si, se fai nella tabella come chiave primaria un campo che abbia tipo enum con un solo possibile valore, hai ottenuto una tabella con una sola riga.

    Ma... a che scopo? Se nel db ci deve essere sempre e solo un corso alla volta, perchè complicarsi la vita? Memorizza le info del corso in un file, oppure anche in una tabella nella quale non fai inserire se il record count non è zero... [/supersaibal]
    Boh! a me pareva di capire che nella tabella poteva esserci solo un determinato corso, ma non un solo record... Se cosi' fosse ci dovrebbe essere una tabella corsi con un id da associare ai vari inserimenti... sarebbe piu' logico.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    forse mi son spiegato male...
    si, lo so anch'io che creare una tabella x un solo record non è il max. ma avendo molte altre tabelle che puntano a quella corsi, volevo cmq crearla x avere una certa integrità nel database. La tabella corsi x ora è questa:

    CREATE TABLE corsi(
    id_corso INT,
    corso Varchar(40) NOT NULL,
    iscritti_open BOOL,
    gruppi_open BOOL,
    n_max_componenti INT,
    laurea VARCHAR(255),
    id_docente INT,
    INDEX (id_docente),
    PRIMARY KEY(id_corso),
    FOREIGN KEY(id_docente) REFERENCES docenti (id_docente) ON DELETE CASCADE
    )TYPE=InnoDB;

    siccome io in nessuna pag php eseguo INSERT in questa tabella, si può solo modificare da riga di comando mysql.
    Io voglio però che nemmeno l'amministratore possa inserire un record se ne esiste già uno(cioè che id_corso rimanga fermo ad 1 e se non viene cancellato non si può fare alcun altro inserimento).

    Altrimenti succedono sfracelli visto che ho molti controlli nelle pag php che mi richiedono un sol corso.

    Sapete come si può fare? :master:

  6. #6
    Come già ti abbiamo detto: la chiave primaria della tabella deve essere un campo di tipo enum con un solo valore possibile.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    grazie mille, così funzia

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.