首页 > 解决方案 > 是为不同的商店创建不同的表更好,还是有一个带有列的表来指定哪个站点?

问题描述

我正在为不同城市的商店开发一个 mssql 数据库。是每个城市都有一张桌子更好,还是全部放在一张桌子上。我也不希望来自不同城市的用户访问不属于他们的城市的数据

标签: sqlasp.netsql-servervb.net

解决方案


SQL 旨在处理大型表,非常大的表。它不是为处理无数小桌子而设计的。您的问题的明确答案是特定实体的所有示例都应该放在一个表中。这有很多很好的理由:

  • 您希望能够编写一个查询,该查询将返回有关任何城市或所有城市的数据。如果数据在一个表中,这很容易;如果数据在多个表中,则很难。
  • 您希望通过选择正确的索引和数据类型以及收集统计信息和整理索引等来优化您的查询。为什么要通过乘以表的数量来乘以工作?
  • 应正确声明外键关系。如果外键可以指向多个表,则不能这样做。
  • 大量小表会导致大量部分填充的数据页,这只会使数据库变大并减慢速度。

我可以继续。但是您现在可能已经知道每个实体一个表是正确的方法(至少在大多数情况下)。

您可以通过多种方式处理限制用户仅在一个城市查看数据的问题。最常见的可能就是简单地使用视图。


推荐阅读