数据库模式生成器

时间:2010-12-03 10:15:59

标签: database excel sqlite schema

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

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

知道怎么做吗?

感谢。

5 个答案:

答案 0 :(得分:2)

假设每个标签都是以表格命名的,并且具有以下单元格:

Name    DataType
ID    integer
Name    varchar(255)

使用Python或Java分别使用python-excelApache POI for Excel来阅读工作簿。我敢肯定其他语言,特别是.NET也有用于此目的的库。这两种语言也都有sqlite3的驱动程序。

遍历每个选项卡 - 使用表CREATE语句的选项卡名称。遍历选项卡上的每一行,并使用该信息定义表的列。定义主键/外键和自动递增等内容将需要一些额外的单元格或命名约定+一些聪明的算法。

最有可能每个CREATE语句都需要通过数据库连接单独传递。

答案 1 :(得分:0)

通常有比Excel更好的工具。从SQLite3数据库开始,并使用具有类似WinSQL的模式编辑器的数据库管理器对其进行分析。

答案 2 :(得分:0)

假设Excel包含fieldname和type列 我会编写一个小的VB脚本,将这些对转换为Java SQL字符串,如:

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);";

然后只需将类似的字符串添加到Java源代码中。或者作为选项,您可以将SQL脚本写入文件,将它们放在资产中的某个位置,从SQLite运行它们

答案 3 :(得分:0)

如果我要编写这样的程序,我会做出以下假设:

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

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

要在Java中执行此操作,我将使用可以读取excel的库 文件,例如Apache POI: (这是我用它的maven依赖性)

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

使用POI读取excel文件,分析列和 在sqllite数据库中动态创建表。 (放弃 表,如果它存在)。然后根据类型生成一个准备好的 声明并根据工作表中的每一行插入数据。

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

答案 4 :(得分:0)

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

您的问题的解决方案是从excel发布示例表,并请求帮助将其转换为SQL