我计划使用asp.net和sql server创建一个网站。然而,我的数据库设计计划让我怀疑是否有更好的方法。
该网站将成为各种用户的信息库。我想我会有两个数据库,一个成员数据库和概要数据库。
配置文件数据库将包含所有用户的用户数据,其中每个用户可能有大约20个表。我将在创建用户帐户时创建表,并生成用于命名表的键。这些表没有直接关系。
例如,两个不同用户的一组表可能如下所示:
User1 Tables - TransactionTable_Key1, AssetTable_Key1, ResearchTable_Key1 ....;
User2 Tables - TransactionTable_Key2, AssetTable_Key2, ResearchTable_Key2 ....;
键1、键2等。在创建帐户时,将根据membershipID数据检索值。随着时间的推移,这可能会导致大量的表。我不确定这样设置数据库是否会限制可伸缩性。有什么建议吗?
编辑:我应该提到其中一些表将包含20K+行。
最佳答案
您肯定不想为每个用户创建一组表,而只希望在一个数据库中创建这些表。即使使用sql server 2008的大容量表(注意在数据库中确实total objects),它也会很快变得不可管理。您最好使用20个表,并通过一列将它们分隔到用户区域。您可以考虑按此用户值对表进行分区,但出于性能考虑,也应该对其进行测试。