sql >> Databáze >  >> RDS >> Mysql

Více možností zaškrtávacích políček uložených do jednoho pole v databázi

Jak poukázal Jrod pomocí LIKE klíčové slovo pravděpodobně uspokojí vaše potřeby.

Nicméně na okraj, existují i ​​jiné způsoby, které by mohly být z dlouhodobého hlediska lepší.

Vztah 1-N

Pokud máte své dovednosti v samostatné tabulce, můžete je propojit ve vztahu jedna k mnoha, to by znamenalo, že byste mohli dotazovat podle dovedností a poté k dotazu připojit relevantní lidi. To by vám umožnilo mít složitější dotazy, jako je schopnost hledat více než jednu odpovídající dovednost nebo dovednost podmíněné shody, ale ne jinou dovednost.

Bitové příznaky

Jak říkáte, jsou to zaškrtávací políčka, předpokládám, že vaše dovednosti jsou omezeny (počet zaškrtávacích políček). Dalším přístupem je použití integer a use bit flags – například:

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

Sečtením kumulativní hodnoty ze všech zaškrtávacích políček a uložením této hodnoty jako celého čísla byste mohli vyhledávat databázi pomocí bitově AND (&)



  1. Naklonujte databázi SQLite

  2. Java.lang.IllegalStateException:Již připojeno

  3. Sestavte stůl za běhu v Ruby on Rails

  4. Získejte klíče Json v MySQL pro konkrétní hodnotu