Linq / lambda 写法求助。多个一对多表关联查询。内详

boyyao 2020-08-17 01:02:03
user表:
id
List<Phone> 一个用户有多个手机 一对多关联
List<Balance> 一个手机有多个余额账户 一对多关联 比如人民币账户。美元账户 根据用户身处位置或其他条件来判断扣款那个账户。

Phone表
id
userid
List<PhoneNum> 一个手机有多个号码,比如多卡多待?

PhoneNum表
id
Phoneid
userid
numtype 联通/移动/电信号码
active 手机号码是否激活了


Balance表
id
userid
balancetype rmb或其他账户
balance 账户余额
List<consume> 消费/充值记录

consume表
id
Balanceid

现在要查询
已经激活的联通手机号码(phoneNum表active=true and numtype = 1)并且对应的RMB余额大于10元的相关信息(Balance表 balancetype =1 and balance >10)
...全文
10688 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨易夕 2020-08-19
  • 打赏
  • 举报
回复
你这个模型加上你这个提问,我都不知道你要查的信息是什么。这个并且对应的RMB余额对应的主体是user,怎么并且?
正怒月神 2020-08-18
  • 打赏
  • 举报
回复
无论你是关系型数据库,还是非关系型。 业务对象的组合是根据业务来的,能清晰表达业务对象的模型。 这里就不讨论深入 聚合根,聚合的DDD模式了。
正怒月神 2020-08-18
  • 打赏
  • 举报
回复
引用 2 楼 boyyao 的回复:
挂在user表是因为这个Balance 不光手机会用到。也可能会用于其他业务。。
。。。。。跟着业务来。 不是说余额是所有业务公用的余额。 比如说,你有一个餐补费余额,有一个手机余额,有一个交通卡余额。 那么他们作为存在的凭借是, 1 餐补费余额 属于 你的员工卡 2 手机余额 属于 手机 3 交通卡余额 属于交通卡。 那么按照关系来说 是 class User { 姓名,年龄。。。。。 员工卡,手机,交通卡 对象 } 然后在员工卡,手机,交通卡 对象各自的class中,有一个 Balance
boyyao 2020-08-18
  • 打赏
  • 举报
回复
感谢回复。当前情况是数据库结构基本定了。。这里是简化的数据库表的关系。。实际上 一个user 是有多个Balance(每个币种一个,比如rmb/美元)。消费上除了Phone外。还有其他的。比如还有tel?email。。等等这里只是举个例子。。 这些phone ,tel,email 是共享balance中的余额的(当然还是要区分rmb/美元) 所以balance就只能跟user表关联了。。。 比如。我一个用户。充值了 10rmb。10美元。 并且有两个手机在用。每个手机有两个号码。 还有一个座机在用。拥有一个号码。。还有3个email在用。等等。都是根据业务情况扣除user下的对应 rmb或者美元的balance表。 所以当管理员要查询用户的一些相关记录的时候就需要对应用户/phone/phonenum/balance的相关记录。。 比如现在要查询 已经激活的联通手机号码(phoneNum表active=true and numtype = 1)并且对应的RMB余额大于10元的相关信息(Balance表 balancetype =1 and balance >10)
boyyao 2020-08-17
  • 打赏
  • 举报
回复
挂在user表是因为这个Balance 不光手机会用到。也可能会用于其他业务。。
by_封爱 2020-08-17
  • 打赏
  • 举报
回复
我看到你第一个User表 我感觉似乎不对劲. 1:N的手机.. 没问题. 1:N的Balance 不应该存在于Phone表吗??? 他本身跟用户也没关系 是不是挂错了?

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧