哪个数据库Relationship比较好? (冗余或少加入)

Which database Relationship is better? (Redundancy or less Join)

我有五张学校桌子(例如),我使用 Entity Framework。

例如我想获得 "Book Name" 一条考试记录。

in "1": I must Join "Exam" and "Teach" and "Book" to get name of Book.

int "2": I must Join "Exam" and "Book" to get name of Book. with 2 "Join" But we have redundancy.

哪个更好? 1 还是 2?


还有一个问题:
在“2” "Join" 是更好还是使用这个?

第一步: 我从 ExamTable 中获取 BookId。
第二步: 我通过 BookId 从 BookTable 中获取 BookName

int BookId = db.Exams.Where(w => w.ExamId == 23).SingleOrDefault().BookId;
string BookName = db.Books.Where(w => w.BookId == BookId).SingleOrDefault().BookName;

没有人能告诉你哪个更好,因为这与用例本身有关。

但我建议您做的一件事是不要使用 Entity Framework 访问表,而是创建执行连接的视图并使用 EF 查询视图(甚至存储过程)。

这使得 EF 的使用更容易,并且视图的性能调整比调整 EF 查询更简单。