Mysql中使用多维数组的一种常见存储方案是将多维数组拆分成多个表,然后通过外键来建立关联关系。
例如,假设要存储一个二维整数数组,可以创建两个表:
array表,用于存储数组的元数据,例如行数、列数等信息。
| id | rows | cols |
|---|---|---|
| 1 | 3 | 4 |
array_values表,用于存储数组的值,其中row和col列是外键,关联到array表中的id列。
| id | row | col | value |
|---|---|---|---|
| 1 | 0 | 0 | 1 |
| 2 | 0 | 1 | 2 |
| 3 | 0 | 2 | 3 |
| 4 | 0 | 3 | 4 |
| 5 | 1 | 0 | 5 |
| 6 | 1 | 1 | 6 |
| 7 | 1 | 2 | 7 |
| 8 | 1 | 3 | 8 |
| 9 | 2 | 0 | 9 |
| 10 | 2 | 1 | 10 |
| 11 | 2 | 2 | 11 |
| 12 | 2 | 3 | 12 |
可以看到,每个数组元素都被存储成一个行,row 和 col 列用于标识该元素在数组中的位置。这种方式可以使得多维数组的查询变得更加灵活,也方便进行增删改操作。