Mysql
 sql >> Database >  >> RDS >> Mysql

Opzioni multiple della casella di controllo memorizzate in un unico campo in un database

Come ha sottolineato Jrod utilizzando MI PIACE la parola chiave probabilmente soddisferà le tue esigenze.

Tuttavia, come nota a margine, ci sono altri modi che potrebbero essere migliori a lungo termine.

Relazione 1-N

Se hai le tue abilità in una tabella separata, puoi quindi collegarle in una relazione uno a molti, ciò significherebbe che potresti eseguire query per abilità e quindi unire le persone pertinenti alla query. Ciò ti consentirebbe di avere query più complesse, ad esempio essere in grado di cercare più di un'abilità corrispondente o un'abilità di corrispondenza condizionale ma non un'altra abilità.

Bit flag

Dato che dici che sono caselle di controllo, presumo che le tue abilità siano limitate (dal numero di caselle di controllo) un altro approccio consiste nell'usare un numero intero e utilizzare i bit flag, ad esempio:

  • Java =1
  • C++ =2
  • Lisp` =4
  • haskell =8
  • Pitone =16

Sommando il valore cumulativo da tutte le caselle di controllo e memorizzandolo come intero, è possibile interrogare il database utilizzando un bit per bit E (&)