Please consider that I have redundand information in my freunde table, which means that I have two rows inserted for one relation. I.E. for user_id = 3 and 10
user_id freund_id approved_p f_approved_p
3 10 t t
10 3 t t
This made it easier to set up the queries in the beginning as you wouldn't have to query "where (user_id = xy or freunde_id = xy)" etc. Loads of reduced complexity! But as this puppy should also scale, we should think about rewriting it.
Question 3
Would it be more efficient to only have one row for every relation in the database? Any examples of a query that would manage relations and permissions with only one row?