Short answer is - Yes, that's fine. Making indexes when needed is "good design", if the usage of the data warrants it.
Longer answer is Yes, with a few considerations;
That the amount of data in the table warrants the indexes, meaning that the overhead in maintaining the data on updates, inserts and deletes in multiple indexes versus just extracting all data from the table on each query.
Basically - if for example, the table will not contain "a lot of data", then it might be better to just avoid indexes on it all together.
Also how is the distribution? If 80% (just a number as example) of the data will have the same value in the field/column, an index might be less useful on selections, because the query optimizer will still have to basically touch most rows anyway and therefore the overhead in maintaining the index is perhaps larger than the gain from having it on select.
Also without knowing the rest of your database design (related tables), it's impossible to say whether your structure is "optimal" and whether you actually need the values in that table or they should be in another table or whether your queries possible could be changed.