Can and should relational database contain tables that don't have primary keys? So this site says: "All tables in a relational database should have a primary key". Here it also says that every table should have a primary key. 

But if I look here and here they say that tables that contain only foreign keys are okay. 

So who is right? And which would be the correct answer under a university setting?
I love that your question includes the qualifier "under a university setting." It just highlights that there is a difference in theory and practice.

We have a few tables in production that don't have an indexed primary key and they are lightning fast to read. We do have indexes on the columns that we read on and join from. But in the University, they probably want you to say always include a primary key column.