データベースの設計で悩んでいます。

例えばユーザー情報用のデータベースを作るとします。


users

  • id
  • name

これに性別を持たせるときは


users

  • id
  • name
  • sex_id

sexes

  • id
  • name

これでよいと思うのですが、例えばグループを持たせたいときにすごく悩んでしまいます。


users

  • id
  • name
  • group_id

groups

  • id
  • name

こうしてしまうと、将来複数のグループを持たせたいとなった時に融通がきかなくなると思います。
なので


users

  • id
  • name

groups_users

  • id
  • user_id
  • group_id

groups

  • id
  • name

このように中間テーブルを挟むことになると思うのですが、将来必要になるかどうかわからないものを最初からこのように設計しても問題ありませんか?
必要になってから工事するくらいなら・・・と思ってしまうのですが。

みなさんはどうしてますか?
失敗談などもあれば是非教えて下さい。