Laravel Eloquent: 数据库架构设计
Laravel Eloquent: DB schema design
我正在为一家在全市维护多个房地产项目的公司编写项目。这样,他们就有了:
- 房地产项目(通常是一组具有单一主要地址的公寓)。
- 组(项目)中的单身公寓,有自己的地址。
- 屋内单身公寓。
因此,#1 的地址将是 Main street - 28,#2 的地址将是 Main street - 28,building 4,#3 的地址将是 Main street - 28,building 4,apt。 12.
问题是他们也有一些实际上同时是 #1 和 #2 的独立屋(比如另一条街 - 123(和很多公寓))。
我正在努力为此设计一个数据库模式并且有多个变体:
- 每个地址,无论是公寓地址、房屋地址还是项目地址,都将存储在自己的数据库行中(如纯文本):
id
address
1
Main street - 28
2
Main street - 28 building 1
3
Main street - 28 building 1 apt. 12
- 每个地址都将存储在具有关系的数据库中,主要地址(Main street - 28),地址扩展(...building 4)和apt.numbers(apt.12)都有单独的表,它们将彼此有关系(如parent_id)。
问题是,由于可能没有中间部分(没有主地址扩展名,例如 building 4
),恐怕最后一个变体不会按预期工作,因为每个公寓都会附加到它。
非常感谢您的帮助!
亲切的问候,
找到了实现的方法。我使用了许多 laravel 包中的一个来实现嵌套集模型结构。在这种情况下,我将在数据库中拥有 tree-like 模型,其中有 parent 和后代。
这样,即使我只检索到根的最深 child 元素,我也可以引用每个 parent 元素。这也允许进行多项操作,例如计数 up/down (parents/children),以及构建实际的可视化树模型。
有多个 Laravel 包可以实现这一点。
我正在为一家在全市维护多个房地产项目的公司编写项目。这样,他们就有了:
- 房地产项目(通常是一组具有单一主要地址的公寓)。
- 组(项目)中的单身公寓,有自己的地址。
- 屋内单身公寓。
因此,#1 的地址将是 Main street - 28,#2 的地址将是 Main street - 28,building 4,#3 的地址将是 Main street - 28,building 4,apt。 12.
问题是他们也有一些实际上同时是 #1 和 #2 的独立屋(比如另一条街 - 123(和很多公寓))。
我正在努力为此设计一个数据库模式并且有多个变体:
- 每个地址,无论是公寓地址、房屋地址还是项目地址,都将存储在自己的数据库行中(如纯文本):
id | address |
---|---|
1 | Main street - 28 |
2 | Main street - 28 building 1 |
3 | Main street - 28 building 1 apt. 12 |
- 每个地址都将存储在具有关系的数据库中,主要地址(Main street - 28),地址扩展(...building 4)和apt.numbers(apt.12)都有单独的表,它们将彼此有关系(如parent_id)。
问题是,由于可能没有中间部分(没有主地址扩展名,例如 building 4
),恐怕最后一个变体不会按预期工作,因为每个公寓都会附加到它。
非常感谢您的帮助!
亲切的问候,
找到了实现的方法。我使用了许多 laravel 包中的一个来实现嵌套集模型结构。在这种情况下,我将在数据库中拥有 tree-like 模型,其中有 parent 和后代。
这样,即使我只检索到根的最深 child 元素,我也可以引用每个 parent 元素。这也允许进行多项操作,例如计数 up/down (parents/children),以及构建实际的可视化树模型。
有多个 Laravel 包可以实现这一点。