Many years ago, I ripped my entire CD collection. This was before iPods and iPhones and iTunes. This was when the few mp3 players were very strange little devices like Rio and iAudio and Palm. I ripped all my CDs under Linux and tagged them with metadata. Then I found the inevitable - the metadata needed correcting. That's when I found that storing the metadata inside the mp3 was a bad idea. I came up with a scheme of my own, in conjuction with Richard. We worked out a good method of storing the metadata and applying it. We revised it many times over the years and now it's a good system and remains a good system.
For most people, this is a waste of time. If you stream music, you don't have to worry about it - it's supplied with the music. If you buy all your music from Apple, you don't have to worry about it - it's included with the music. I think most people either stream or buy digital today, and I am an anachronism. But I do what I do and I like doing it. Think of it as a hobby.
I don't stream. I occasionally buy from iTunes, but I move the music out and fold it into my collection. I occasionally buy digital from other sources, but again, I fold it into my collection, and use my methods.
The core is a text file stored with the mp3s. I call it track.dat. This contains details of the CD, plus details for every track. Example: