2

我正在考虑为我的妻子编写一个简单的数据库应用程序,但我对良好的编程实践很感兴趣,并且希望有一个人类可读的源代码来存储数据库模式。

只是,我不知道任何用于这项工作的工具,而且我不敢相信它们不存在——可能我只是不知道该问谷歌什么,但我没有找到它们。

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


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

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

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

4

5 回答 5

4

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

这适用于 mysql、postgresql、oracle 和可能的任何其他数据库。

于 2008-12-07T03:09:52.787 回答
1

我想我现在明白了一点。

尽管市场上的每个 SQL 解决方案都应遵守某种程度的 ANSI SQL 标准合规性,但它们都将提供某种自定义数据类型,这些数据类型可能无法在另一个 SQL 服务器解决方案中共享/使用/识别。

例如,在 MySQL 4 中,您可以使用很多选择(DATE、DATETIME、TIME、YEAR 和 TIMESTAMP),而在 MS SQL 2000 中,您只有几个(DATETIME 或 SMALLDATETIME)。您必须确保最终生成的架构在您愿意支持的解决方案之间是通用的。

MySQL 数据类型

MS SQL 2000 数据类型

这有帮助吗?

于 2008-12-07T04:46:35.603 回答
1

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

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

http://www.sqlite.org/

于 2008-12-07T05:26:41.917 回答
1

您可能想查看http://www.codesmithtools.com/。该工具旨在读取数据库的架构并允许您基于该架构创建代码模板。它有一个用于访问模式数据的抽象库。

于 2009-08-05T17:05:50.633 回答
0

我还不能发表评论,但如果我理解这一点,您是否希望应用程序或库根据文本文件中提供的数据构建模式?

您能否提供一个您想要完成的示例工作流程?您遇到问题的步骤是哪一步?

于 2008-12-07T04:05:32.643 回答