Should name suffix (Jr. Sr. III) be a separate field?
One issue with this is that a query such as where last_name = 'Brown' will miss Brown Jr.


That's not really an issue. Just do WHERE last_name LIKE '%Brown%'. Generally, I don't put them in separate fields because my word loads don't require it. You can go by the name Jo2e Bob44 and I don't much care. Sometimes I break things apart into First Name, and Last Name to build Rolodex functionality or custom sorts.

The only time I think the application requires it would be if you're making an ancestry.com or the like. I could see it being more significant there.