#normalization #no-sql #table-name #primary-key

app eson

用于去规范化数据库的规范化工具

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年9月21日

#5 in #no-sql

每月下载 27

GPL-3.0 许可证

80KB
2K SLoC

eson

Build Status Build status

eson 是一个正在开发中的工具,用于从去规范化的关系模式中提取规范化模式。希望它能对理解和管理NoSQL应用程序的模式有所帮助。

输入格式

示例输入文件位于 examples 目录中。输入文件到 eson 被分为四个不同的部分。第一个部分指定以下格式的去规范化输入关系

users(*user_id, first_name, last_name)

标记有 * 的字段组成该关系的键。第二个部分指定每个表的函数依赖关系。首先给出表名,然后是依赖关系的左侧和右侧。

users user_id -> first_name, last_name

以下示例说明了包含依赖关系的指定方式

employees user_id <= users user_id
users user_id <= employees user_id

本部分有两个快捷方式可以使用。首先,如果包含依赖关系在两个方向上都适用,则可以使用 == 而不是分别指定两个依赖关系。其次,如果右侧的字段与左侧的字段相同,则可以使用 ... 来替换右侧的字段。使用这两个快捷方式,上面的两个依赖关系可以写成

employees user_id == users ...

最后一部分是可选的,用于指定在基于启发式方法对函数依赖进行排序时(使用 --use-stats 选项)表和列的统计信息。关系的统计信息简单地列出关系中的条目总数。列的统计信息列出唯一值的数量以及最大长度。

users 1000
users user_id 1000 1

依赖项

~1MB
~21K SLoC