Yes, it is ok to have a composite primary key with 4 or more columns.
It doesn't necessarily make additional keys for each of those columns redundant. For example, a key (a, b, c)
will not be useful for a query SELECT ... WHERE b = 4
. For that type of query you would rather have key (b)
or key (b, c)
.
You need to examine your expected queries to determine which indexes you'll need. See this talk for more details: http://youtu.be/AVNjqgf7zNw