One of the things my company is trying to implement is a better way of tracking who has which skills in certain areas. The set of skills would be updated on occasion, but is mostly static (so updates to the list would be relatively infrequent). Moreover, it's expected that most people will be considered to have most of the skills (there would be approximately 200 people and 100 discrete skills tracked here).
In order to better query this information, they would like to put it in a database. However, I am not experienced enough with database design to understand the best approach to modeling the problem. Either it seems like we would have one big table with one hundred columns (1 boolean column for whether or not an employee has that skill), or a giant table with an entry associating each employee with each skill they have. While I suppose both methods are possible solutions to the problem, they seem so clunky, inelegant, and difficult to query that I assume there must be a somewhat more refined method of modeling this. However, it escapes me at the time.
Can anyone provide any insight into the best way to design this, to avoid commiting to something posted on this web page years down the road?
Thanks!