3分级架构—数据层仅存储数据

本文关键字:数据 存储 3分 | 更新日期: 2023-09-27 18:10:11

数据层是否验证任何用户的输入?还是仅仅存储数据?

示例—用户将电子邮件添加到他的配置文件中。

这样对吗?

表示层-验证电子邮件格式是否有效(客户端)

逻辑层
  • 验证邮件格式是否有效
  • 设置邮件类型(即主邮件?)
  • 检查允许存储电子邮件的记录限制

数据:

  • 保存邮件记录

逻辑:

  • 向表示层发送通知
  • 发送邮件通知

3分级架构—数据层仅存储数据

备注:

数据层任务是连接数据库并执行CRUD操作,如果您想应用比必须在逻辑层中执行的更多的验证逻辑

你的架构改变

展示层-

  • 验证邮件格式是否有效(客户端)

逻辑层
  • 验证电子邮件格式是否有效(再次?)- 不需要再做一次
  • 设置邮件类型(即主邮件?)
  • 检查允许存储电子邮件的记录限制
数据层:

  • 允许连接数据库
  • 执行CRUD操作

数据存储即数据库

  • 保存邮件记录

DataLyer

  • 通知正确插入的逻辑层数据

逻辑层:

  • 向表示层发送通知正确插入/更新数据
  • 通过电子邮件发送通知如果数据插入/更新正确,则日志错误

每一层都有自己的一套与外部世界的契约。

你不应该做或不做一些基于假设它可能已经在前一层完成的事情(如验证)

然而,DataLayer不验证电子邮件地址格式。这不是它的责任。它甚至不应该理解电子邮件是什么样子的,除了它是一个特定长度的字符串。