如何从一组查询中自动确定表格架构?

时间:2009-04-04 16:24:03

标签: sql database-design schema

是否有任何工具,它将采用一组CRUD查询,并生成“足够好” 该集的表模式:

e.g。我可以提供这样的输入:

  insert username, password  
  insert username, realname
  select password where username=?
  update password where username=?
  update realname where username=?
     

使用此输入,工具应该能够制作1或2或3个表,照顾_id,   和索引。

换句话说,我正在寻找一个工具,我可以设计一组查询假设一个无限列表,并且工具流程实际上生成了一些数据库/表/列,以及带有对每个查询的函数调用的高级语言模块。

哦,是的,我正在尝试解雇我的数据库设计师( - :

2 个答案:

答案 0 :(得分:1)

您是否考虑过像Hibernate一样使用 ORM解决方案?这需要应用程序类模型(例如User类)和数据库模式表示(例如:USER表)之间的初始映射集。

ORM解决方案可能支持高级映射方案,其中对象映射到架构中的多个表。另外,较新版本的Hibernate支持从映射中生成数据库模式(搜索hbm2ddl工具)。

答案 1 :(得分:0)

你要求不可能。

  • 该工具如何知道username应该有一个索引,更不用说唯一索引了?
  • 如何知道列的数据类型?
  • 如何知道任何域限制 - 例如,假设的性别列必须是malefemale,而不是crimson
  • 是不是很容易受到拼写错误的影响,只留下usernameuser_name列?

数据库需要设计(很多)原因。例如,规范化的问题对于无法理解您的问题领域的工具来说将是非常困难的。

那就是说,它不是自动的,而是你要求的是 - 正如Aleris回答的那样 - 一个ORM。您没有指定使用哪种语言,但肯定有一种(或更多)用于您的语言。