Well if you're only using that field to break ties, then there's some other piece of information that is missing from the table that should be able to break the ties. At least usually. It's pretty rare that two records could actually really be perfectly identical in every meaningful way.
Quote:
It is less likely a person to have the same degree from the same institution, but chances are somebody may have the same qualification from two different institutions (like when needed to practice the same job in two different states).
|
The same qualification for two people isn't a problem because of the UserID.
Two records for the same person at the same institution would be unusual. If that's possible, you could use the dates to tell them apart.
Two records for the same person at the same institution on the same dates probably doesn't make any sense.
But all of this depends on what you're interested in. For example, if you don't care about the dates, you might like to omit them from the table. (In this program you probably would want the dates but suppose you don't.) In cases like that people often add a SequenceNumber field that is just a numeric field to make the records unique. These are numbered 1, 2, 3, etc. for each person.
They are also often used to impose an order on data that doesn't have a natural order. For example, people often add it to the items in a purchase order so the items appear in the same order whenever you look at the record.
But back to your example. The auto-number field would act sort of like a sequence number to make the records unique.
One disadvantage I see is that, if you'll be using the RowId to find records then you'll probably want to index it so finding records with it will be faster

.
That's not the end of the world, however, and indexing numbers is pretty fast and takes little memory so the penalty won't be too high.
(Note also that some databases have a record number or record ID value that is automatically available. Usually it's used internally by the database but you can use it if you really want to, although most database purists would frown on that because it's an artificial key!

A quick google makes me think that MySQL doesn't have a row ID.)