松散耦合的数据库设计 - 如何?

Goo*_*ber 5 database sql-server loose-coupling

我正在使用Silverlight在后端实现一个基于Web的应用程序,该应用程序将显示应用程序将显示的所有数据.我想确保应用程序可以轻松扩展,我觉得这样做的方向是使数据库松散耦合,而不是将所有内容与外键绑定.我试过寻找一些例子,但无济于事.

有没有人有任何信息或良好的起点/样品/例子来帮助我开始这个?

非常感谢.

亲切的问候,

Mus*_*sis 8

我想你的术语有点混乱了."松散耦合"是指具有不相互依赖的软件组件的可取性,它们不能在不在同一程序中的情况下运行或甚至编译.我从未见过用于描述同一数据库中表之间关系的术语.

我想如果你搜索术语"规范化"和"非规范化",你会得到更好的结果.


Eri*_*ric 4

除非您一次进行大量插入(例如数据仓库),否则请使用外键标准化规模疯狂,你应该利用这一点。外键速度很快,并且当您一次插入数百万条记录时,约束实际上只会阻碍您。

确保您使用的整数键具有聚集索引。这应该会使连接表变得非常快。如果没有外键,您可能会遇到很多令人沮丧的问题。我整个周末都在这样做,我们有意识地选择不使用外键(尽管我们有 TB 的数据)。

  • @Goober:使用 GUID 作为主键*会*减慢检索速度*如果*您要连接两个或多个表,但速度并不会减慢几个数量级(查询将花费大约一倍半的时间)方式),并且不会影响单个表上的简单 SELECT。然而,使用自动增量 int 列作为主键并没有任何问题。GUID PK 最适合分布式/复制数据库。 (2认同)