我正在为应用程序构建消息服务。用户通过电子邮件地址和uid进行标识。 Uid也用作用户表的主键。我发现允许我的应用程序查看和使用该UID比使用用户的电子邮件地址更快更简单。
我的应用程序对数据库的设计有所了解是否重要?这是一个具体的例子,但我的意思是这个问题是一个概括...... 当涉及到应用程序与其数据库之间的信息共享时,知识有多“太多”?
我主要是从什么被认为是'好的设计'的角度来问。我不太清楚如何标记这个,建议赞赏。
答案 0 :(得分:2)
您的应用程序和服务层应该将您的数据抽象为整个应用程序中使用的“域”对象。只有处理数据检索和存储的数据层才能知道完整的数据库设计;它确实需要知道这些信息才能正确查询和存储数据。
遵循标准的分层方法进行应用程序开发 - 有许多书籍是基于分层架构编写的。
答案 1 :(得分:0)
我认为这取决于您是否计划将此应用程序扩展到使用此特定数据库之外。我认为过度泛化会使代码变得比它需要的更复杂(并且效率可能更低)。您需要找到一个平衡点,这可能取决于应用程序的计划未来。显然,我的回答是完全主观的。
答案 2 :(得分:0)
这完全取决于您如何找到您的应用程序需求。
一个好的设计是将您的代码分隔到图层上,以使您的代码可重复使用。
Ntier:UI< - BusinessLogiclayer< - DataAccessLayer。
MVC:Model< --- View< --- Controller。
你可以随时在你的ui中调用你的域/ DataAccesslayer,因为它只是在一个类中。
确保您的数据库也是Normalize / De Normalize并熟悉它,以便您了解应用程序中所需的最佳方法。