父子表建立以及相关操作

1.建立Student表
表名:t_Student RowID:St_RowID
属性:StCode,StName,StSexDR,StDob
StSexDR为性别指向,指向一个CTSex性别表

Class User.Student Extends %Persistent [ SqlRowIdName = St_RowID, SqlTableName = t_Student, StorageStrategy = StudentStorage ]
{

Property StCode As %String [ Required, SqlColumnNumber = 2, SqlFieldName = st_code ];

Property StName As %String [ SqlColumnNumber = 3, SqlFieldName = st_name ];

Property StSexDR As CTSex [ SqlColumnNumber = 4, SqlFieldName = st_sex_dr ];

Property StDob As %Date [ SqlColumnNumber = 5, SqlFieldName = st_dob ];

Relationship ChildCourse As User.StuCourse [ Cardinality = children, Inverse = StudParRef ];

Index indexcode On StCode;

}

2.建立Course表

Class User.Course Extends %Persistent [ SqlRowIdName = C_RowID, SqlTableName = t_Course, StorageStrategy = CourseStorage ]
{

Property Code As %String [ SqlColumnNumber = 2, SqlFieldName = C_Code ];

/// 课程描述
Property Desc As %String [ SqlColumnNumber = 3, SqlFieldName = C_Desc ];

Property DateFrom As %Date [ SqlColumnNumber = 4, SqlFieldName = C_DateFrom ];

Property Active As %String(DISPLAYLIST = ",Yes,No", MAXLEN = 3, TRUNCATE = 1, VALUELIST = ",Y,N") [ SqlColumnNumber = 5, SqlFieldName = C_Active ];

Property UserDr As User.SSUser [ SqlColumnNumber = 6, SqlFieldName = C_User_Dr ];

}

3.学生选课表

Class User.StuCourse Extends %Persistent [ SqlRowIdName = SC_RowID, SqlTableName = t_StuCourse, StorageStrategy = stucourse ]
{

Index RowIDBasedIDKeyIndex On SCChildSub [ IdKey, PrimaryKey, Unique ];

Relationship StudParRef As User.Student [ Cardinality = parent, Inverse = ChildCourse, Required, SqlFieldName = SC_S_ParRef ];

Property SCChildSub As %Library.Numeric(SCALE = 0) [ InitialExpression = {$i(^STUDENT($p($s($d(initvalue):initvalue,1:%d(0)),$c(1)),"C",0))}, Required, SqlColumnNumber = 2, SqlFieldName = SC_ChildSub ];

Property SCCourseDr As User.Course [ SqlColumnNumber = 3, SqlFieldName = SC_Course_Dr ];

Property SCScore As %Float [ SqlColumnNumber = 4, SqlFieldName = SC_Score ];

}

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
注意:Rowid用表名.Rowid

4.查询某个学生的选课情况

Class web.StuCourse Extends %Persistent
{

ClassMethod FindCourseByStud(stuno)
{

    Quit:stuno="" ""
    ;第二个空是返回值
    set stuId=$o(^STUDENTi(0,"No",stuno,""))
    set sub=0
    For  set sub=$o(^STUDENT(stuId,"C",sub))  quit:sub=""  d
    .set g=^STUDENT(stuId,"C",sub)
    .set CourseId=$p(g,"^",1)
    .set CourseDesc=$p(^COURSE(CourseId),"^",2)
    .set Score=$p(g,"^",2)
    .Write CourseDesc_" "_Score
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值