架构问题 - 一个中央数据库和许多不同的程序访问它

Dan*_*Man 6 c# sql linq architecture

我正在设计一个程序,它将构建和维护一个数据库,并充当中央服务器.这是更宏伟计划的"第一阶段".稍后将会有3-5个远程程序围绕放入此数据库的信息构建.

要求是:

  1. 远程程序必须能够访问数据库中的信息.
  2. 远程程序必须能够在数据库中的信息发生更改时设置警报.
  3. 远程程序必须能够请求中央服务器出去并获取新的/不同的数据.

所以,问题是这样的:我如何将这些数据和事件暴露给外界?我的两个选择是:

  1. 让他们直接与我的"服务器"应用程序通信.这似乎更容易:
    • 做事件通知(虽然我想我可能在SQL中遗漏了一些东西).
    • 它似乎也更"可升级" - 这就是我不需要担心数据库更新和崩溃所有我的远程程序,因为一些事情发生了变化.我可以解释这个并将数据转换为子程序将理解的版本.
  2. 继续,让他们直接连接到数据库.
    • 关于这一点的好处是它已经解决了.我可以使用LINQ for SQL.主服务器应用程序唯一需要做的就是让远程程序知道数据库的位置.
    • 我不确定如何通过可能在同一台计算机上或不在同一台计算机上的不同程序触发/中继"事件"以进行数据库中的字段更改.

原谅我对这个问题的无知.我觉得很不自在地问它,但是我很难搞清楚从哪里开始.这是我的第一个真正的DB项目: - /

谢谢!

Bre*_*art 5

如果其他程序需要了解数据库的更新,那么最佳解决方案是通过服务器应用程序管理所有数据库更新,以便它可以向客户端发出更改警报.否则,客户端很难意识到数据库的更改.这还具有从客户端隐藏存储解决方案的实现细节的优点,因此您可以自由地更改数据库等...