好的,我有一个Access DB,它有一个Items Table和一个包含每月订阅费的Students表,这两个链接在第三个表“Payments”中,它收集学生的数据(费用+项目)并总结他们。但该表只保留值而不是描述。由于付款是不规则的(学生不需要在同一天支付全部费用),因此学生的项目债务价值需要按照他支付的方式减少,我需要对此进行控制。那么,我是否应该创建一个新表来复制另外两个表中的数据并在这个新表中进行更改,或者只是使用查询来显示数据并在“主”表中进行更改?我有点迷茫,对此感到困惑,对不起这个烂摊子。
答案 0 :(得分:3)
在进一步使用这个项目之前,你需要阅读有关数据库设计的初学者文本,imo。通过谷歌搜索“关系数据库教程”找到的第一个项目是
http://www3.ntu.edu.sg/home/ehchua/programming/sql/relational_database_design.html
请参阅“在表格之间创建关系”部分。在线有无数其他教程。
按规则,您不要将数据从一个表复制到另一个表。项目描述和用户名称等信息只应存储在数据库中的一个位置。当您在将其与另一个表中的数据相关联的上下文中需要时(例如,在“费用”或“付款”表中显示“项目”表中的条目的描述以及成本金额),您可以查找它,而不是复制它。
处理具有任意多项的学生的方法是具有“链接”表,该表主要仅存储学生的唯一标识符和项的唯一标识符。通常,这些将是数字标识符,分配为现在学生/项目/其他实体被添加到数据库。
拥有链接表的重点是,与特定学生相关的项目数量没有实际限制。
您呼叫在链接表中添加一列,以将学生和同一项目的一个或多个实例与特定账单(或者订单或您的数据库建模的任何内容)相关联。