【发布时间】:2017-04-04 19:33:27
【问题描述】:
在我的特殊情况下,我正在使用 java、jdbcTemplate 和 HSQLDB 数据库,但我认为这可以被视为关于数据库持久性的一般问题。
假设我有一个 People 集合。每个人都可以是其他人的父母,也可以是其他人的孩子。假设每个人可以有多个地址,以及多个属性,例如身高、体重和眼睛颜色。
所以我们有以下表格。
人
地址(参考人表)
属性(引用回人员表)
关系(有两个引用返回到人员表,一个用于父级,一个用于子级)
假设我有大量人员需要在我的应用程序中持久化。
以良好的性能持久保存这些数据的良好模式是什么?
显然,一次一个地坚持每个人会很慢。
下一个选项是将所有人员、他们的所有地址、属性和关系收集到他们自己单独的集合中,并将它们分批保存。
但是,这就是我目前卡住的地方。
我正在使用数据库生成的序列 ID。
如果我首先保存一批中的所有人员,我如何让人员 ID 来保存这些人员的所有地址、属性和关系?
我应该切换到在我的应用程序代码中生成 ID,如果是,最佳做法是什么?
或者我是否应该使用应用程序代码中已知的不同密钥以某种方式引用所需人员。比如人名+姓列...
还有其他方法吗?
【问题讨论】:
标签: java sql database performance persistence