PLa*_*ane 8 mysql sql database-design
我正在为一个系统做这个数据库设计的东西,我需要将一些可变长度数组存储到mysql数据库中.
阵列的长度(最多)为数百(如果不是数千).
将定期创建新阵列,可能每天数十个.
澄清,1.粗略表示
CREATE TABLE array (id INT, valuetype VARCHAR(64), ...)
CREATE TABLE arr_values (id INT, val DOUBLE, FK array_id)
Run Code Online (Sandbox Code Playgroud)
和2.
CREATE TABLE array (id INT, valuetype VARCHAR(64),...)
CREATE TABLE arr_values (id int, val DOUBLE, FK array_id) -- template table
CREATE TABLE arr1_values LIKE arr_values ...
Run Code Online (Sandbox Code Playgroud)
arr_values将用作通过连接到完整数组来查询的数组.关于为什么某些方法比其他方法更好的任何想法?
mea*_*gar 26
几张桌子中有很多行.为每个新结构/记录创建一个新表是绝对不正确的,也是使用关系数据库的最糟糕的方法.
实际上,几乎在你的代码动态创建表的任何时候,你都在做一些非常糟糕的事情.
正如对这些问题的所有答案一样,它总是在某种程度上取决于您的最终结果需要是什么,但就个人而言,我总是倾向于使用单个表而不是动态创建的表 - 这使得查询更加简单.当你查看数据库模式时,它也使得它更简单(我认为) - 成千上万的表可能使得在直接访问数据库时更容易找到所需的内容.
此外,如果您发现需要在某个位置使用另一个字段扩展"数组",则意味着将有一个数据库表要更改,而不是很多.
| 归档时间: |
|
| 查看次数: |
2162 次 |
| 最近记录: |