Question: I use `camelCase` in my code and database field names, etc, but with fields that have `Id` at the end, it always ends up being hard to read. For example, `itemId`, `teacherId`, `unitId`, etc. In these cases I consider breaking convention and writing `itemID, teacherID, or unitID` just for improved readability.

What do you do and what's a general, best practice of dealing with this issue?

Answer: 
Id, as for Identifier. Microsoft's suggested naming conventions indicate that that's the recommended practice and compiling with code analysis will support that.
You would use ID if it stood for two words starting respectively with I and D and you're really not supposed to use names starting with lowercase letters but in parameters.
It's pronounced "eye dee", not "id as in id, ego and superego", so ID, not Id. That's my vote, anyhow. The fact that it's an abbreviation, rather than an acronym is irrelevant, due to the way that it's pronounced. It's pronounced as if it were an acronym, so it may as well be typed that way as well. Oh, and camel case is the worst idea in the history of computing.:)