数据库中常见的实体有哪些具体例子?
- 内容介绍
- 文章标签
- 相关推荐
什么是数据库实体?
在关系型数据库中,实体指的是现实世界中可以被唯一识别且具有独立存在意义的事物或概念。它们被抽象成数据表,每一行代表一个具体实例,每一列代表该实例的某个属性。
为什么要把业务对象建模为实体?
将业务对象映射为实体后可以:
- 统一管理数据结构,减少冗余;
- 通过主键保证记录唯一性;
- 利用外键建立业务关系,支持复杂查询;
- 程序可维护性与 性。
常见数据库实体及其典型属性
User
ID:UserID Name:Name Email:Email Password:Password DateCreated:DateCreated
ID:EID Name:Name DOB:DateOfBirth Email:Email Status:Status
ID:CID Name / CompanyName:Name / CompanyName Email / Phone:Email / PhoneNumber :AddressID
ID :OrderID Date :OrderDate CustomerID :FK 到 Customer 表 TotalAmount :TotalAmount
ID :ProductID Name :ProductName Price :Price StockQuantity :StockQuantity
ID :AddressID Street :StreetAddress City :City State/Province :State/Province PostalCode:PostalCode · Country:Country · Latitude:Latitude · Longitude:Longitude · Note:Note
* 其他常见实体*
- Tenant: 在多租户 SaaS 中区分不同客户组织。其实,
- : 控制访问权限。
- : 用于事件驱动或审计。
- : 用于对内容进行归类、搜索调整。
- : 对仓库中的物料进行追踪。不过,
典型业务场景中的实体组合示例
| 在线商城主要表结构示例 | ||||
|---|---|---|---|---|
| User 表 | `||||
UserID PK Username PasswordHash Email Phone CreateTime LastLoginTime Status RoleIDs ` ``Product` 表` `` ` `ProductID PK Name Description Price CategoryID FK → Category表 BrandID FK → Brand表 StockQuantity```Order` 表` `` `OrderID PK UserID FK → User表 OrderDate TotalAmount PaymentStatus ShippingAddressFK → Address表```OrderItem` 表` `` ` ` ` ` ` ` ` ` `OrderItemID PK OrderID FK → Order表 ProductID FK → Product表 Quantity UnitPrice``` ` `" ` " " " "`" " "`" "`Category` 表` " `" " " "`CategoryId PK` Name` Description` ParentId FK -> Category` "" "`Brand` 表` "" " " " " "`BrandId PK` Name` Country ` EstablishedYear " "" "注上面仅给出主要字段。实际项目中往往需要更多细化属性,例如折扣信息、优惠券使用记录、物流跟踪等。
使用者痛点与实战建议
- 痛点一:缺乏统一的命名规范,导致团队协作混乱。 不过, 方法——采用驼峰式或下划线命名统一标准。并在文档中明确说明每个字段含义和约束。使用 ER 图工具生成可视化模型方便新人快速上手。
痛点二:未对关键字段做索引,查询性能差。话说回来, 方法——根据业务访问频率为主键、外键还有经常过滤的列创建 B‑Tree 索引。对于大数据量的日志或历史记录,可采用分区表或时间序列调整技术。
痛点三:忽略了事务一致性与并发控制,导致脏读/幻读问题。不过, 方法——使用适当隔离级别。如 READ COMMITTED 或 REPEATABLE READ,并在写操作前加锁或使用乐观锁机制。必要时可考虑采用分布式事务框架或两阶段提交实现跨库一致性。
痛点四:缺少完整的数据字典,导致新增字段时出现冲突或重复定义。 方法——维护集中式数据字典,记录所有表/字段、数据类型、默认值还有业务描述。每次变更都需经过审批流程并同步更新文档。
痛点五:对敏感信息处理不当,易产生安全风险。 方法——对密码、身份证号等敏感字段采用哈希+盐存储。对通讯录信息使用加密存储,并结合角色权限控制访问;定期执行安全审计和漏洞扫描。对于传输层,可强制 HTTPS 或 TLS 加密通道。
什么是数据库实体?
在关系型数据库中,实体指的是现实世界中可以被唯一识别且具有独立存在意义的事物或概念。它们被抽象成数据表,每一行代表一个具体实例,每一列代表该实例的某个属性。
为什么要把业务对象建模为实体?
将业务对象映射为实体后可以:
- 统一管理数据结构,减少冗余;
- 通过主键保证记录唯一性;
- 利用外键建立业务关系,支持复杂查询;
- 程序可维护性与 性。
常见数据库实体及其典型属性
User
ID:UserID Name:Name Email:Email Password:Password DateCreated:DateCreated
ID:EID Name:Name DOB:DateOfBirth Email:Email Status:Status
ID:CID Name / CompanyName:Name / CompanyName Email / Phone:Email / PhoneNumber :AddressID
ID :OrderID Date :OrderDate CustomerID :FK 到 Customer 表 TotalAmount :TotalAmount
ID :ProductID Name :ProductName Price :Price StockQuantity :StockQuantity
ID :AddressID Street :StreetAddress City :City State/Province :State/Province PostalCode:PostalCode · Country:Country · Latitude:Latitude · Longitude:Longitude · Note:Note
* 其他常见实体*
- Tenant: 在多租户 SaaS 中区分不同客户组织。其实,
- : 控制访问权限。
- : 用于事件驱动或审计。
- : 用于对内容进行归类、搜索调整。
- : 对仓库中的物料进行追踪。不过,
典型业务场景中的实体组合示例
| 在线商城主要表结构示例 | ||||
|---|---|---|---|---|
| User 表 | `||||
UserID PK Username PasswordHash Email Phone CreateTime LastLoginTime Status RoleIDs ` ``Product` 表` `` ` `ProductID PK Name Description Price CategoryID FK → Category表 BrandID FK → Brand表 StockQuantity```Order` 表` `` `OrderID PK UserID FK → User表 OrderDate TotalAmount PaymentStatus ShippingAddressFK → Address表```OrderItem` 表` `` ` ` ` ` ` ` ` ` `OrderItemID PK OrderID FK → Order表 ProductID FK → Product表 Quantity UnitPrice``` ` `" ` " " " "`" " "`" "`Category` 表` " `" " " "`CategoryId PK` Name` Description` ParentId FK -> Category` "" "`Brand` 表` "" " " " " "`BrandId PK` Name` Country ` EstablishedYear " "" "注上面仅给出主要字段。实际项目中往往需要更多细化属性,例如折扣信息、优惠券使用记录、物流跟踪等。
使用者痛点与实战建议
- 痛点一:缺乏统一的命名规范,导致团队协作混乱。 不过, 方法——采用驼峰式或下划线命名统一标准。并在文档中明确说明每个字段含义和约束。使用 ER 图工具生成可视化模型方便新人快速上手。
痛点二:未对关键字段做索引,查询性能差。话说回来, 方法——根据业务访问频率为主键、外键还有经常过滤的列创建 B‑Tree 索引。对于大数据量的日志或历史记录,可采用分区表或时间序列调整技术。
痛点三:忽略了事务一致性与并发控制,导致脏读/幻读问题。不过, 方法——使用适当隔离级别。如 READ COMMITTED 或 REPEATABLE READ,并在写操作前加锁或使用乐观锁机制。必要时可考虑采用分布式事务框架或两阶段提交实现跨库一致性。
痛点四:缺少完整的数据字典,导致新增字段时出现冲突或重复定义。 方法——维护集中式数据字典,记录所有表/字段、数据类型、默认值还有业务描述。每次变更都需经过审批流程并同步更新文档。
痛点五:对敏感信息处理不当,易产生安全风险。 方法——对密码、身份证号等敏感字段采用哈希+盐存储。对通讯录信息使用加密存储,并结合角色权限控制访问;定期执行安全审计和漏洞扫描。对于传输层,可强制 HTTPS 或 TLS 加密通道。

