我有一张动物表:
动物
身份证号码 1只狗 2猫
3只兔子
每只动物都有一个组合,因此我有两种定义数据库表的方法。
方法1:
组合
Id AnimalId日期
1 1 01/01/2001
2 2 20/03/2009
3 3 05/03/2009
4 1 01/04/2005
方法2:
DogPortfolio
Id日期
1 01/01/2001
2 01/04/2005
CatPortfolio
Id日期
1 20/03/2009
RabbitPortfolio
Id日期
1 05/03/2009
哪种方法更可取?请记住,这是一个人为的例子,实际上我将每个组合存储~10k行数据。
答案 0 :(得分:1)
我肯定会选择方法1。
因为每种动物的投资组合都是相同的,所以它们应该一起放在一张桌子里。如果Dog组合与兔子组合不同,那么你可能想要考虑更像方法2的东西。
方法1 也可以扩展,因此您可以添加1行
4鱼
并且结构的其余部分继续工作。使用方法2,每次将一行添加到动物表时,您都必须创建一个表(例如FishPortfolio)。
几乎每次你提出一个涉及在运行时创建永久存储表的解决方案时,这都是一个糟糕的主意。
确保在索引中包含PortfolioID和AnimalID。