首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库字段操作

数据库字段操作
EN

Stack Overflow用户
提问于 2013-02-04 12:06:37
回答 2查看 91关注 0票数 0

我收到一个数据库,它非常复杂,所以我很难理解它。我主动提出我会为店主清理干净,但看着大量的关系,我可能会把一些事情变得更糟。但是有一个问题我想解决,有一个名为LoanStatus属性的字段;-Text -ComboBox -RowSource:“当前”;“已返回”;“过期”

我遇到的问题是,每当您借出一个项目时,您在行中填写资产编号,系统将在该行中为您返回到期日。但问题是,您可以在不同的表中无限次地借出同一项目(给不同的人),我希望每当您尝试借出已经借出的项目时,LoanStatus字段都会显示"AlreadyLoaned“。再说一次,写这篇文章让我有点头疼,但我希望你们能理解。谢谢您抽时间见我!

即时消息使用MS Access 2007

EN

回答 2

Stack Overflow用户

发布于 2013-02-04 12:15:13

根据数据规范化的原则,您不应该存储可以从数据库中的其他值计算出的任何值。因此,它应该是从数据库获取值的查询的一部分,而不是具有“已借出”的值,以检查该书是否已被借出。

它应该是这样的:

代码语言:javascript
复制
Select Book.id as Name, count(Loan.id) as LoanedCount
from Book
left outer join Loan on Book.id = Loan.bookid
group by Book.id

它所做的是返回每一本书,以及它所拥有的每一次借阅的计数。左外部连接表示每个图书/贷款组合对应一行,如果该图书没有贷款,还会有一行图书/无贷款。然后,将具有相同图书的所有行分组在一起,计算有多少非空贷款ids并返回该值。

票数 1
EN

Stack Overflow用户

发布于 2013-02-04 12:27:12

如果您拥有对规范化数据库的管理访问权限,那么您应该在适当的表中为LoanStatus添加一个值"Occupado“。否则,有关从中检索值的ms access数据库表的模式的更多信息将是有用的。除了必须将新值添加到数据库之外,您很可能还需要在“签出”过程中添加一些规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14680205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档