So I have a table containing various software and a table containing various features. Each software entry need to have a list of features.

Here's where it gets tricky:
In my application, I need to be able to select a software entry if it has all the features in a list. An example: a text editor has syntax highlighting, hex editing, and a plugin manager. I want to select it only if it has syntax highlighting and a plugin manager.

The obvious solution would be to store a list of feature IDs in a comma-separated string. But then I'd have to do all the matching within the application, which would be pretty slow (I'm using PHP), not to mention I'd have to select ALL the software first.

Any better solutions?

I guess I should have done more research before I posted. I found a solution on this page describing tag schemas.