mysql - 动态创建表的数据库设计

标签 mysql sql sql-server oracle postgresql

我需要在数据库中即时创建动态表。例如,在数据库中我将​​命名为:

Table
Column
DataType
TextData
NumberData
DateTimedata
BitData

在这里,我可以在名为 table 的表中添加一个表,然后我可以将所有列添加到 columns 表中的该表,并将数据类型关联到每一列。

基本上我想创建表而不实际在数据库中创建表。这可能吗?如果是这样,你能指引我到正确的地方,以便我进行研究吗?另外,我更喜欢 sql server 或任何免费的数据库软件。

谢谢

最佳答案

您所描述的是一个 entity-attribute-value model (EAV) .这是一种非常糟糕的数据模型设计方法。

虽然数据模型非常灵活,但查询这样的数据模型却相当复杂。如果您想选择或过滤 n 个不同的属性,您通常最终不得不自行加入一个表 n 次。这变得很慢,而且变得相当难以相对快速地优化。

此外,您通常最终会构建数据库或 ORM 将提供的大量功能。

关于mysql - 动态创建表的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127814/

相关文章:

mysql - 如何选择表中其他表中没有的行

sql - SQL Server 中 sp_who 状态的含义

sql - 根据 SQL 函数中的顺序对列进行排序

php - CodeIgniter - 从 n-2-n 关系表中获取并显示数据

php - 如何使用ajax jquery删除数据表的行

mysql - 带有外部 mysql 的 hive Metastore 不起作用

java - hibernate 中有没有一种方法可以在一个字符串中操作多个查询

sql - Postgres 动态列标题(来自另一个表)

SQL Group By function(column) - 现在无法选择该列

SQL内连接与左连接问题