database - AngularJS:我需要了解数据库结构才能实现吗?

标签 database database-design angularjs angularjs-directive

我是 AngularJS 的初学者。目前我一直在尝试提取硬编码的 JSON(后端和服务器数据尚未准备好)。似乎为了提取数据,例如在使用非常常见的 ng-repeat 时,我需要知道数据库结构(因为渲染的 JSON 将镜像该结构,对吧?)。

因此,虽然我可以独立于后端进行编码,但我必须了解数据库结构的假设是否正确?例如...我可能想提取用户评论数据。这可能在它自己的数据库中,我可能会这样做: ng-repeat='comment in comments' 并过滤数据库中每个评论条目中的特定用户。而如果评论仅在用户表中,则为 ng-repeat='comment in user[0].comments'。我认为前者是正确的方法,但老实说我从未了解过正确的数据库结构。不过,为了正确实现 AngularJS,你必须了解这一点。

感谢任何帮助。我真的想确保我正确处理事情。谢谢!

最佳答案

我认为您不需要(或应该)了解数据库结构。 AngularJS 是一个 MVC 框架。此架构的基本原则是关注点分离。简单地说:不要混合使用,但更具体地说,您正在讨论两个系统之间的通信:本地系统(运行 angularJS 的浏览器)和远程系统(可能与远程系统相同或不同的服务器)将 Angular 文件提供给客户端)

例如,您的 View 不应该访问数据库(如果您正在使用 PHP,那么 View 中不应该有诸如 mysql_query(...) 之类的内容)。

您还应该将组件设计为松散耦合:使它们尽可能独立。单元测试可以帮助您以这种方式思考,并且 AngularJS 对于 karma 特别适合单元测试。遵循这个原则,如果您使用 twitter API 在 angularJS 应用程序中显示推文会怎样?你不需要了解 Twitter 的内部结构。有一个 API 以您可以使用的格式提供此 JSON。 您的后端应该提供此功能(例如,使用外观 Controller ),并且您应该与后端团队就可用的数据达成一致。

不要让你的设计依赖于数据库结构,而是让后端 API 依赖于你的需求。这样,您将拥有两个松散耦合的系统,并且后端团队可以做任何他们想做的事情,而不会影响您。例如,更改 DBMS 或表的结构。

如果您想提取评论,您可能有一个远程调用($httpng-resource)来获取特定用户(或一些用户,因为您可能希望最大限度地减少服务或 Controller 中的远程调用数量。服务器使用表示此内容的 json 文件进行响应(可能很快还会需要更多内容,例如个人资料图片 url、用户 ID 等)。然后,将要向 View 公开的数据(从服务器获取的数据的子集)放入 $scope 中。

关于database - AngularJS:我需要了解数据库结构才能实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883570/

相关文章:

sql-server - 来自多个 SQL 实例/服务器的行计数

php - MySql,在重复更新时插入

sql - 通过单点高效检索重叠的 IP 范围记录

database - 名中间名姓。为什么不是全名?

javascript - 尝试在 ES6 中创建 angularJS 指令。尝试双向数据绑定(bind)时出错

javascript - 使用 css 创建网页布局时遇到问题

javascript - 动态 HTML 表上的删除、编辑和保存行功能

php - 存储 secret 问答 - 散列或纯文本。

sql - 在SQL中,我如何增加像这样的id : client1, client2, client3

javascript - 有条件地创建内容的 Angular Directive(指令)