C# 我应该创建一个视图还是另一个表?

C# 我应该创建一个视图还是另一个表?,c#,winforms,linq-to-sql,datagridview,C#,Winforms,Linq To Sql,Datagridview,首先,作为免责声明,我通过C间接了解了一点SQL/LINQ。我对这两方面都非常了解。我很快就厌倦了使用充满数据的示例数据库和在最简单的情况下进行查询。信息是以这种方式呈现的,因为重点是C和可视化编程,而不是SQL或LINQ的毛茸茸的部分 即便如此,我还是决定转换一个使用文本CSV文件存储的简单应用程序。该应用程序跟踪三种可能的应付款,其中给定日期将存在0-3条记录。我能够为每个契约创建数据库和单独的表,并构建一个应用程序,使用LINQtoSQL类将现有记录插入数据库 现在我有了另一个应用程序,可

首先,作为免责声明,我通过C间接了解了一点SQL/LINQ。我对这两方面都非常了解。我很快就厌倦了使用充满数据的示例数据库和在最简单的情况下进行查询。信息是以这种方式呈现的,因为重点是C和可视化编程,而不是SQL或LINQ的毛茸茸的部分

即便如此,我还是决定转换一个使用文本CSV文件存储的简单应用程序。该应用程序跟踪三种可能的应付款,其中给定日期将存在0-3条记录。我能够为每个契约创建数据库和单独的表,并构建一个应用程序,使用LINQtoSQL类将现有记录插入数据库

现在我有了另一个应用程序,可以通过契约计算器或直接通过BindingSourceNavigator和DataGridView添加条目。每个表共有四列-日期、GrossPay、TaxAmount和NetPay,日期是主键。我想按日期查看记录,其中有TotalGross、TotalTax、TotalNet,以及该日期每个合同表的GrossPay列

正确的方法是什么?视图、LINQ查询、独立表还是其他?至少就我的能力而言,表格似乎是最简单的,但似乎是不必要的记录复制。我试图链接这些表,但没有其他列保证是唯一的或主要的

任何建议都很好

澄清:

三个表格的格式如下:

|Date | GrossPay | TaxAmount | NetPay |…彼此之间没有共同点|

**每个表都有特定的数据,用于根据合同类型计算公共列

我希望查看按日期分组的所有记录,以便每个记录的表示方式如下:

|日期|总毛额|总税|总净额|表1总计|表2总计|表3总计|

**总计列是共享日期的所有记录的各个列的总和

**表中的一个或两个可能为零


我想您是在问,是否可以按日期从三个不同的表中为它们共有的列选择记录

如果是这样,你需要做一个联盟

在您的例子中,它在SQL中可能是这样的。注意,我制作了一个虚拟列来表示您可能需要的记录源

SELECT Date, GrossPay, TaxAmount, NetPay, 'Table1' as Source FROM Table1
UNION
SELECT Date, GrossPay, TaxAmount, NetPay, 'Table2' as Source FROM Table2
UNION
SELECT Date, GrossPay, TaxAmount, NetPay, 'Table3' as Source FROM Table3
WHERE Date = '2013-05-05'

我不会为视图而烦恼,也绝对不会用单独的表复制您的数据。

在这个问题上,您想做什么有点难理解,您能澄清一下吗?谢谢您的回答。基于一些约束条件,将整个表组合在一起并没有问题。这最终是三个表的单独列表。自从问起,我就看到了其他插入多个表的例子。您的建议是否基于大型数据集?就记录数量而言,每天最多插入四条记录,而且很少插入,这可以忽略不计,但是复制数据是个坏主意。