学SQL之初,范式定律规定:数据库的各个数据应该分割成到最小、不能再分割的部分,然而在实际中,我遇到了一个要违背该定律的情况。
-----
举例说明:
我有三个门面,分别是A、B、C,门面一年一租,合同一年一签。
1.2010年有3个人租了我的门面,张三租了A,李四租了B,王五租了C。一共签了3份合同,分别是a,b,c。
2.2011年有2个人租了我的门面,张三租了A、C,李四租了B,一共签了2份合同,分别是a+c、b。
3.2012年有2个人租了我的门面,张三租了A,李四租了B、C,一共签了2份合同,分别是a、b+c。
4.2013年有1个人租了我的门面,张三租了A、B、C,一共签了1份合同,a+b+c
因为我的程序记录的是以每一份合同所填写的门面为最小单位,那么我要看A门面的收入情况就只有2010和2012年可以(因为2011、2013年A门面都和其他门面一起签订的合同),要对A门面历年来的收入情况作对比就会缺少2010、2012年的数据。
-----
有个蠢办法可以解决这个问题:那就是一个门面就签一个合同,比如2013年张三租了A、B、C,就由原来的“一共签了1份合同,a+b+c”变成了“一共签了3份合同,分别是a,b,c”,这样2013年A门面的数据就出来了。
然而在实际操作中往往是“2013年张三租了A、B、C,一共签了1份合同,a+b+c”这种情况居多。
有什么其他更合理办法可以解决这个问题么?
C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!