无法开始使用SubSonic

时间:2009-08-28 14:07:21

标签: orm activerecord subsonic domain-driven-design

我脑子里有一个域模型,我在构建SubSonic兼容的数据库模式时遇到了问题,如果你能告诉我你将如何使用3个实体(例如是SqlServer或MySql对我无关紧要)

主题 - 代表教育主题(例如三角学,微积分)。 道具名称

技术 - 代表用于解决练习的技术(例如余弦定律,毕达哥拉斯定理) 道具名称,父亲主题

练习 - 代表某个问题。 道具 - 主题,技巧(仅用于解决练习的那些),DifficultyLevel(enum-easy,meduim,hard),Answer(int)。

所以: 多对多 - 运动 - >主题,练习 - >技术 一对多 - 主题 - >技术。 而且DifficultyLevel是一个枚举。

一旦我开始掌握它,我一定会为文档做出贡献。

2 个答案:

答案 0 :(得分:1)

最简单的方法是在多对多关系之间构建桥接表。

Table: Subject
Columns: Subject_ID (PK)
         Name (UK)

Table: Technique
Columns: Technique_ID (PK)
         Name (UK)
         Subject_Name (FK)

Table: Exercise
Columns: Exercise_ID (PK)
         Difficulty_ID (FK)
         Question_Text
         Correct_Answer_ID (FK)

Table: Difficulty
Columns: Difficulty_ID (PK)

Table: Exercise_Answer
Columns: Answer_ID (PK)
         Exercise_ID (FK)
         Answer_Text

Table: Exercise_Technique
Columns: Exercise_Technique_ID  (PK)
         Exercise_ID (part of UK, FK)
         Technique_ID (part of UK, FK)
  • 受许多技术的影响
  • 练习许多技巧(通过Exercise_Techniques)
  • 练习许多答案

通过将答案分离出另一个表并且不使用正确的答案ID作为int(作为第二个答案),您可以通过比较answer_id值和练习来随机化答案并仍然知道哪一个是正确的答案。 correct_answer_id。

答案 1 :(得分:1)

我要说使用SimpleRepository: http://www.subsonicproject.com/docs/Using_SimpleRepository

我即将使用AutoT迁移为ManyToMany关联更新它,这将生成您需要的表/约束。我正在通过它的步伐,所以我需要几个星期。

如果您愿意(没有迁移)myname @ gmail,您可以通过电子邮件向我发送代码。