关于数据库表设计

时间:2016-10-05 00:18:07

标签: sql-server database

我已经在网络上进行了一段时间的研究,但无法找到相同的情况。我需要的是:

我有20个组,每个组都有自己的文档模板。例如,在组1中,模板具有26个内容:A,B,C,D,E ..... Z.但并非所有这26个内容都会显示出来。

  

例如,文档1将显示10个内容,文档将显示15个内容。在第二组中,模板有30个内容:aa1,bb2,cc3,..... yy30。每个文档将根据传递的参数显示某些内容,与第一组相同。

我将创建一个带参数的方法,并根据传递的参数生成文档。

我应该如何在sql server中设计数据库表? 1)使用A,B,C,D .... Z作为列,值是真(显示)还是假(不显示)?但每个组都有不同的模板。例如,第二组将包含列aa,bb,cc .....所以我必须为20个组创建20个表?这不是一个好策略吗?记录将如下:

             A      B      C
doc1       true   true   false
doc2       true   true   false

2)使用A,B,C,D ...... Z作为行,值是真(显示)还是假(不显示)?然后他们将有许多冗余记录。例如,第1组的文档1将具有:

doc1   A    true
doc1   B    true
doc1   C    false
...
doc2
doc2
...
doc

请帮忙提出建议。谢谢!

1 个答案:

答案 0 :(得分:0)

我对你的情况了解如下:

  • 你有20个小组
  • 每组都有一组内容
  • 每个组都有多个文档模板
  • 每个文档模板根据需要有多个内容。

考虑到你不关心正常化;你需要在下面创建单个表:

模板表(组,文档,内容),仅为组中文档显示的内容(例如,在您的示例中为true)添加行。

Group   Document    Content
-----   --------    -------
G1      Doc1        A
G1      Doc1        B
G1      Doc2        A
G1      Doc2        B
...
G2      Doc1        AA
G2      Doc1        BB
G2      Doc2        BB
G2      Doc2        EE
...