clojure – 对数据库中的多对多关系进行建模
|
也许我还在思考sql,但是我在编写一个简单的博客的数据库模式时遇到麻烦.
在这种类型的系统中,我们如何模拟这些关系 >系统支持多个用户 解决方法看看下面的图表,并阅读 https://gist.github.com/a2ndrade/5651419的完整代码示例(模式,示例数据和查询).它应该可以帮助您了解如何在Datomic中建模数据.查询 请注意,由于Datomic中的关系是双向的,因为您可以使用简单的Datalog查询来检索其余的信息,因此未明确建模某些关系.例如,查询: (d/q '[:find ?cid ?c :in $?u :where [?uid :user/username ?u] [?aid :article/category ?cid] [?aid :article/author ?uid] [?cid :category/name ?c]] (d/db conn) "john.smith") 找到用户(“john.smith”)为其编写文章的所有类别ID及其名称. 遏制关系 一个重要的建模决定是让文章指向注释并将关系标记为:db / isComponent,因为注释不应该仅仅存在于文章中.如果文章本身已被撤销,则Datomic将确保撤回与文章相关联的所有注释. 执行业务规则 如果要执行特定于应用程序的一致性规则(例如,文章和评论必须具有作者,评论必须具有一定的长度等等),则需要使用database functions.它们可以在转换器内部运行,并可以原子地强制执行任意限制,中止事务不遵守. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 数据库 – 将文件与一段数据相关联的最佳方法是什么?
- MySQL Left JOIN时指定NULL列返回特定值详解
- sql-server – 如何将SSEST中的TIMESTAMP值转换为T-SQL中的
- windows环境中mysql忘记root密码的解决方法详解
- sql – 为什么外部连接比单独的查询慢
- sql-server – 如何在SQL Server Management Studio中执行单
- 在大多数SQL实现中,与标准编程语言相反,为什么x!= null不返
- 解决mysql创建数据库后出现:Access denied for user root@
- sql-server – SQL Server模拟和连接池
- SQL中使用ESCAPE定义转义符详解
