title: Centralize identity table and relations all table with one table in SQL
body: <p>I have an idea about a structure in SQL and not understand its good or bad, please help me.</p>
  
  <p>My application have many table by having similar columns (creatorUserId, creatingDate, type,...) and all of them (tables) have n-to-n relation with others and itself.</p>
  
  <p>It seems that all tables are derived from a base table, which includes similar columns and one identity column. I called the base table <code>Content</code> and added table with 2 columns (ContentParent_Id, ContentRelated_Id) for relations of "Contents".</p>
  
  <p>Id column in Content table is identity and all of other table have one-to-one relation by Content table.</p>
  
  <p>Also, several tables have been added to manage the common properties of all tables, such as display order, delete status, verification status, visit count, etc.</p>
  
  <p><a href="https://i.stack.imgur.com/gv4rO.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gv4rO.jpg" alt="db diagram sample"></a>
  Questions:</p>
  
  <ol>
  <li><p>Should I add one-to-one relation and table and <code>ContentTable</code> and is not this overload for SQL?</p></li>
  <li><p>When I execute query that select Reading that related by the person, it's slower than from when add n2n relation with person and reading. Why?</p></li>
  <li><p>When executing query with Entity Framework with this code and see result in SQL Server Profiler, this shows table with many column that not used. Why?</p>
  
  <pre><code> DB.Set&lt;T&gt;()
     .Include(q =&gt; q.Content)
     .Include(q =&gt; q.Content.ContentOrder)
     .Include(q =&gt; q.Content.ContentDelete)
     .Where(q =&gt; q.Content.ContentDelete.isDelete != 1)
  </code></pre></li>
  <li><p>Please share any suggestions that will improve the performance of this structure</p></li>
  </ol>
  
  <p>Thanks.</p>