我目前正致力于在Access 2013年建立一个ERP/CRM数据库,以涵盖运营企业的所有非财务方面,如客户/供应商信息、联系人、订单和交货跟踪等。
我们生产制造量能细木工产品(窗、门等).我发现的一件事是,我需要有能力在数据库中的几乎每个表中记录记录。例如,我可能想在下面的表格上写笔记:
tblAccount保存了客户和供应商的信息。“这个顾客总是有特殊的玻璃”。tblDelivery --“顾客要求司机停车在伦敦路的房子后面”。tblQuote -“报价不包括钢的木材覆层-由他人供应”。等等
因此,目前我有一个tblNote,它有以下字段:
NoteID - PKAccountID - FK到tblAccountDeliveryID - FK到tblDeliveryQuoteID - FK到tblQuoteEnteredByUsedID - FK到tblUser。EntryDate -日期说明NoteText -注文CommTaskID -稍后解释-见下文当输入新注释时,其他表的大部分FKs将为空白(除了说明实际上涉及的那些表)。注释将在一个子表单上查看,例如,当浏览客户帐户时,将有一个框显示关于该客户的注释。
在自己的表中有注释的原因是,数据库中的每条记录(例如,客户帐户)可能需要附加一个以上的注释。
我还想实现任务分配和跟踪,以及通信日志记录。例如,当我们接到潜在新客户的电话询问报价时,我们将记录该电话已经收到,以及客户的详细联系方式,请注意,他们已经要求报价以及关于他们想要的报价的次要细节,再加上标记,以供特定的数据库用户或没有指定的人所要求的操作。它也可能被创建为
考虑到这一点,我有了tblCommTaskLog,它有以下字段:
CommTaskID - PKCommMethodID - FK到tblCommMethod,它持有Phone call,Fax,Email和In Person之类的东西.AccountID -联系人(客户/供应商)的帐户记录EnteredByUserID FK。EntryDateIsActionRequired -布尔型ActionRequiredByUser - FK到user表,以标记需要对该项采取行动的用户(如果任何人可以完成此操作,则可能为空)。ActionCompletedDate -将操作标记为已完成的日期。ActionCompletedByUser -为完成任务的用户提供另一个FK到user表。如上所述,便笺表中有一个CommTaskID,它允许您创建便笺记录,其中包含有关通信或任务的任何相关注释。
基本上,我的问题是:是否有更好的方法来解决这个问题?我是不是遗漏了什么?这似乎是一个笨拙的方法,但我无法提出一个更好的方法,遵循DB规范化规则。
发布于 2014-09-23 14:57:09
你的想法对我来说是对的。我必须将备注集成到现有的DB中,您肯定只想要一个notes表,其中包含一个字段,该字段指定便笺所属的表以及该注释绑定到的表中的主键。
所以,我想也许你想要这个
这样,您就可以知道它属于哪个表,以及它属于哪个表中的记录。
在查询中,您可以简单地将TablePK连接到表中的键,并根据要加入的表筛选TableID。
或者,如果您需要建立关系,您可以简单地向所有表中添加一个新字段,其中包含它们的TableID。
发布于 2014-09-23 11:42:32
只是一个想法,但是否更有意义的是,有一个笔记表,为每一张表,你想做笔记?
TblCustomer TblCustomerNotes
TblProduct TblProductNotes
等。
https://stackoverflow.com/questions/25992670
复制相似问题