Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 用于读取数据库架构的外部库或微型语言?_Database_Schema_Mini Language - Fatal编程技术网

Database 用于读取数据库架构的外部库或微型语言?

Database 用于读取数据库架构的外部库或微型语言?,database,schema,mini-language,Database,Schema,Mini Language,我正在考虑为我妻子编写一个简单的数据库应用程序,但我对良好的编程实践犹豫不决,希望有一个可读的源代码来存储数据库模式 只是,我不知道有什么工具可以做这项工作,我也不相信它们不存在——也许我只是不知道该问谷歌什么,但我没有找到它们 那么,有哪些库或其他工具支持从纯文本文件读取数据库模式呢 对于invenetix的问题:我希望在构建时生成数据库创建代码,或者在发行版中包含模式描述,并在运行时根据描述构建数据库。Draemon的建议很好,但如果我能帮忙的话,我不想被锁定在预定的RDBMS中 也许我应

我正在考虑为我妻子编写一个简单的数据库应用程序,但我对良好的编程实践犹豫不决,希望有一个可读的源代码来存储数据库模式

只是,我不知道有什么工具可以做这项工作,我也不相信它们不存在——也许我只是不知道该问谷歌什么,但我没有找到它们

那么,有哪些库或其他工具支持从纯文本文件读取数据库模式呢


对于invenetix的问题:我希望在构建时生成数据库创建代码,或者在发行版中包含模式描述,并在运行时根据描述构建数据库。Draemon的建议很好,但如果我能帮忙的话,我不想被锁定在预定的RDBMS中

也许我应该说,我以前在编程项目中使用过数据库,但从未负责创建代码


可能我在这一点上过度设计了这个问题。

只需使用SQL即可。SQL不仅是一种查询语言,而且是一种DDL(数据定义语言)。例如,如果您正在使用mysql;您可以根据需要设计模式,运行mysqldump,它将创建一个包含DDL语句的SQL文件。整理模式,然后您可以随时通过寻找SQL文件来加载模式。就我个人而言,我只是在文本编辑器中编写SQL模式并将其加载到mysql中


这将适用于mysql、postgresql、oracle,可能还有任何其他数据库。

我还不能给出评论,但如果我理解正确,您希望应用程序或库根据文本文件中提供的数据构建模式吗


你能提供一个你想要完成的工作流程示例吗?哪一步是你遇到问题的地方?

我想我现在明白多了

尽管市场上的每个SQL解决方案都应该遵守一定程度的ANSI SQL标准,但它们都会提供某种自定义数据类型,而这些数据类型可能不会在另一个SQL server解决方案中共享/使用/识别

例如,在MySQL 4中,您可以使用很多选择(日期、日期时间、时间、年份和时间戳),而在MS SQL 2000中,您只有几个选择(日期时间或SMALLDATETIME)。您必须确保最终生成的模式在您愿意支持的解决方案之间是通用的


这有帮助吗?

SQLite不以文本格式保存数据,但它可能会做您喜欢的事情

它非常适合嵌入式数据库——没有服务器,没有设置,数据库位于单个文件中,可以由应用程序管理


您可能想退房。该工具用于读取数据库的模式,并允许您基于该模式创建代码模板。它有一个用于访问架构数据的抽象库。

谢谢+1.RDBMS对类型信息有很大程度的依赖性吗?是的,很遗憾。对于除最简单的数据库外的所有数据库,您不太可能定义一个模式文件。但考虑到不同的数据库会以不同的方式执行简单的操作,如自动递增键,这并不奇怪。您可以维护等效的模式,或者使用类似SQLFairySQLFiry的工具。再次感谢。SQLite是我最初实施的计划,但我有理由希望以后有选择。但我注意到Sqlite并没有推动类似时间的类型,这可能是一个问题。尽管如此,还是投票吧。哇!将近七个月过去了。对你很好,我会调查的。我想晚做总比不做好吧?这个问题出现在我正在做的搜索中,我想我会有所贡献。:-)