数据库架构生成器

我有一个描述数据库表的所有表结构的excel文件

我想从这个excel文件中为sqlite3数据库生成数据库模式图和数据库模式结构。

任何想法如何做到这一点?

谢谢。

假设每个选项卡都是为一个表命名的,并且具有这样的单元格:

Name DataType ID integer Name varchar(255) 

使用Python或Java分别使用python-excel或Apache POI for Excel来读取工作簿。 我相信其他的语言,特别是.NET也有这样的库。 这两种语言也有sqlite3的驱动程序。

迭代每个选项卡 – 使用表CREATE语句的选项卡名称。 迭代选项卡上的每一行,并使用该信息来定义表格的列。 定义诸如主键/外键和自动递增等事情将需要一些额外的单元格或命名约定+一些聪明的algorithm。

很可能每个CREATE语句都需要在数据库连接上单独传递。

通常比Excel更好的工具。 从你的SQLite3数据库开始,用一个像WinSQL这样的模式编辑器的数据库pipe理器来分析它。

假设Excel包含字段名和types列,我将编写微小的VB脚本,将这些对转换为Java SQLstring,如:

 private static final String DATA_CREATE="create table if not exists\n" + "MYTABLE\n" + "DATA_ID integer primary key autoincrement,\n" + "RAW_ID integer not null,\n" + "ORDER_ID integer not null,\n" + "CHUNK blob);"; 

那么就把这个类似的string添加到你的Java源代码中。 或者作为选项,您可以将SQL脚本写入文件,将它们放置在资产的某处,以便从SQLite运行它们

如果我要写这样一个程序,我会做出如下假设:

  • 该表将成为表名。
  • 列标题将成为列名称。
  • 列的格式规则将控制数据types。

考虑到这些限制,您可以创build一个导入和创build工具。

为了在Java中做到这一点,我会使用一个可以读取excel文件的库,例如Apache POI:(这里是我使用的maven dependncy)

  <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version> </dependency> 

使用POI读取excel文件,分析列并在sqllite数据库中dynamic创build表。 (如果存在,则删除表)。 然后根据types生成一个准备好的语句,并根据表单中的每一行插入数据。

这将是基本的设置。 从那里你必须决定如何去做外键,如果你需要的话等等。

我不认为你的要求是可能的。

你的问题的一个解决scheme将是从Excel中发布一个示例表,并请求帮助将其转换为SQL