I would go with Number 1:
Avoid reserve names like "name". give fields distinctive names. I you have to repeat the table name, so be it, although I do not like seeing the table name in all the fields.
Avoid just using ID as then you have NO idea what ID is to what table. Make it unambigous ANd you then have to qualify it anyways. student_ID = mentor_ID is a WHOLE lot more readable
than a.id = b.id. That is not useful, hard to read, have to then figure out what a and b is and is NOT an agile practice. Code/SQL should be easy readable w/o commenting.
User of underscore helps with readability, camel case aside (as that is what I use in C#)
I always put the PK as the first field name and the associated FK as the 2nd, 3rd, etc fields.
Do not end a field name with _s or _d to deliniate string or date.
I like things tidy and unambigous because i want to be considerate to others coming behind me that have to do maint on the DB. Too many people drag bad habits from Access into SQL.
Mostly because they had no mentor to help them learn! :-)
Remember, on going maintenance is always a larger on going task than original development.