国债不熟,给你说说sql吧。
按照你的说法,也就是一个人可以有多个交易,每笔交易对应一张债券,用户和交易一对多,交易和债券一对一,一对多的关系在多的一段维护。举个例子
create table user (id int primaty key ,username varchar);
create table sale (id int primaty key,userid varchar foreign key REFERENCES user(id),gzid varchar foreign key REFERENCES gz(id));
create table gz (int id primaty key, userid varchar foreign key REFERENCES user(id),....)
其中sale表的userid字段需要是user表中id的值。gzid同理。
至于债券到时间后的操作,你可以写一个定时程序,在每天0点执行,去检查gz表的时间是否到期,到期在执行一些具体的操作即可。