我对SQL中的结构有一个想法,但不了解它的好坏,请帮帮我。
我的应用程序具有很多表,它们具有相似的列(creatorUserId,creatingDate,类型...),并且所有它们(表)与其他人及其本身具有n对n的关系。
似乎所有表都是从基表派生的,该基表包括相似的列和一个标识列。我调用了基表Content
,并添加了具有2列(ContentParent_Id,ContentRelated_Id)的“ Contents”关系表。
Content表中的ID列是标识,其他所有表与Content表具有一对一的关系。
还添加了几个表来管理所有表的通用属性,例如显示顺序,删除状态,验证状态,访问次数等。
我应该添加一对一的关系和表以及ContentTable
,这不是SQL的重载吗?
当我执行选择“读取与人相关的内容”的查询时,它比与人和书中添加n2n关系的读取要慢。为什么?
当使用带有此代码的Entity Framework执行查询并在SQL Server Profiler中查看结果时,这将显示具有许多未使用列的表。为什么?
DB.Set<T>()
.Include(q => q.Content)
.Include(q => q.Content.ContentOrder)
.Include(q => q.Content.ContentDelete)
.Where(q => q.Content.ContentDelete.isDelete != 1)
请分享所有可改善此结构性能的建议
谢谢。