繁体   English   中英

如何在合金中建立有效的数据库模型?

[英]How to model a consitent database in alloy?

合金新手在这里。 我正在尝试建立一个包含用户和一些医疗信息的医疗数据库。

sig User{
    name: one  String,
    surname:  one String,
    socialNumber:  one String,
    address:  one String,
    age: one Int,   
    registration: one UserCredential,
    healthStatus: one HealthInformation
}{
    age>0
}
sig UserCredential{
    user: one String,
    pass: one String,
    mail:  one String
}

sig HealthInformation{}


sig Data4Help{
    users: some User,
}

pred show(d:Data4Help){
    #d.users>1
}

run show for 10

分析器告诉我模型不一致:

执行“ 10个放映节目”求解器= sat4j位宽= 4 MaxSeq = 7 SkolemDepth = 1对称= 20 5448 vars。 510个主要变量。 12578条。 16毫秒。 找不到实例。 谓词可能不一致。 0毫秒。

你们能告诉我为什么吗? 我想要的只是将数据库“ Data4Help”链接到某些用户,该关系的定义可能不正确,但我不知道为什么。 谢谢

问题在于合金在琴弦方面有一些麻烦。 默认情况下,字符串签名定义了一组空原子。 如果要在模型中使用字符串,则必须使用“您自己的字符串”填充该集合。

请参阅如何在合金中使用弦乐?

在模型中,您可以添加以下简单事实

fact initPoolOfString{ 
   String in "insert"+ "your"+"dummy" + "strings" + "here"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM