SQL Server数据库存储/性能'可选'一组字段

时间:2017-06-12 23:29:24

标签: sql-server database

(注意:设法传入的例子)

我有一个名为' Foo':

的商业实体
public class Foo
{
   public string Name { get; set; }
}

在我的数据库中将其表示为单个表格,如下所示:

FooId   Name
-------------
1       "Bar"

我现在想要向业务实体添加三个NULL - 表道具:

public class Foo
{
   public string Name { get; set; }
   public int? OptionalProp1 { get; set; }
   public int? OptionalProp2 { get; set; }
   public int? OptionalProp3 { get; set; }
}

通常在这种情况下,我会添加一个额外的表格,其中FK会回到主要的“Foo”表格中。表

然而,在我的应用程序中,我有一个名为" FooSearchView"的索引视图,它允许快速读取大量的' Foo'记录。

问题是,对于索引视图,您不能拥有LEFT OUTER JOIN's,因此我无法实现上述数据库建模。

有关如何“最佳”的任何建议。存储这些可选字段? (最好=干净的数据库设计,最佳性能)

想到的事情:

  1. 将额外字段添加到表本身(表变长,但只能更新我的索引视图)
  2. 使用单独的表,并在应用层中执行第二次数据库调用。基本上在app / network级别进行JOIN。
  3. 不要使用索引视图,例如使用常规索引
  4. 任何其他建议或建议将不胜感激。

    谢谢!

0 个答案:

没有答案