1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年9月21日 |
---|
#5 in #no-sql
每月下载 27 次
80KB
2K SLoC
eson
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