【发布时间】:2016-05-12 09:10:06
【问题描述】:
我目前正在使用 Haskell 和 Persistent 开展一个项目,并且遇到了一个小问题。我想编写一个小库来处理一种通用的身份验证方法,每个用户都获得一个“身份”。
此身份使用持久性存储在数据库中。
Identity
lastSeen UTCTime
registration UTCTime
karma Int DEFAULT=0
banned UTCTime Maybe
我的想法是我的 lib 的用户可以将他们的帐户数据类型映射到一个身份。我的问题是,当我将类型 IdentityId 赋予我的用户数据类型的字段时,该列是一个整数(这很好)但缺少引用约束。
例如:
User
email Text
identity IdentityId
UniqueIdentity identity
我明白了:
Migrating: CREATE TABLE "identity"("id" INTEGER PRIMARY KEY,"last_seen" TIMESTAMP NOT NULL,"registration" TIMESTAMP NOT NULL,"karma" INTEGER NOT NULL,"banned" TIMESTAMP NULL)
Migrating: CREATE TABLE "user"("id" INTEGER PRIMARY KEY,"email" VARCHAR NOT NULL,"identity" INTEGER NOT NULL,CONSTRAINT "unique_identity" UNIQUE ("identity"))
诀窍是:用户的定义是在不同的文件中完成的,我想问题就在这里。
我可以做些什么来强制持久添加引用约束吗?
提前谢谢你!
【问题讨论】:
标签: sql haskell persistent