I am a little confused about how foreign keys work, especially in many to many joins. could you go more into the pros and cons of relational vs. non-relational databases?