nasiroff / eav
Eav For Artisan.
dev-main
2024-07-30 20:38 UTC
Requires
- illuminate/database: ^11.0
- laravel/legacy-factories: ^1.4
- league/csv: ^9.0
- sunel/json-api-resources: >=0.1.0
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: ~1.0
This package is not auto-updated.
Last update: 2024-09-25 19:45:49 UTC
README
工作进行中
实体-属性-值模型(EAV)是一种数据模型,以空间高效的方式编码实体,其中可用于描述这些实体的属性(属性、参数)的数量可能非常庞大,但实际上适用于特定实体的数量相对较小。
文档
何时使用
-
让我们考虑一种情况,其中可以使用多个不同的属性来描述实体,但实际上只有少数属性适用于每个实体。一个选项是创建一个表,其中每列代表一个属性;这对于具有固定属性数量的实体是合适的,其中所有或大多数属性对于大多数对象都有值。然而,在我们的情况下,我们最终会得到记录,其中大多数列都是空的,因为属性可能是未知的或不适用。为了解决上述问题,你可以应用 EAV(实体、属性、值)模型。
-
拥有一个可能随时间变化的宽松模式。描述实体的属性表不受特定列数的限制,这意味着在需要引入新属性时不需要重新设计模式。随着数据库的发展,属性的数量可以垂直增长,而无需结构更改。
EAV 的限制
- 在 EAV 模型中,实体数据更分散,因此选择整个实体记录需要多个表连接。请查看此内容