Extend Member is the correct way of doing it. Once you have done this, and you create new instances of your MyMember class, they will each have a corresponding row in the Member table in the DB with the same uid as the row in the MyMember table.
Extending Member gives you the ability to use the standard logOut(), checkPassword() etc functions on your MyMember as well as retrieving him like normal through the Member::currentUser() method to get the logged in Member.
I've just implemented this recently with a custom login form and it works well.
Sorry, should clarify what I said "extending Member is a good way of doing it" instead of "the correct way" - I know that it works really well for me.
To prevent them from being able to log in to the CMS, you just make sure they aren't in the Administrator user group. You could create a special group for these types of users if you want to group them.