这是一个棘手的规范化/ SQL /数据库设计问题,令我们感到困惑。我希望我能正确地说出来。设计这个特定数据库/ SQL问题的最佳方法是什么?
您有一组活动。他们是需要完成的事情 - 一个荣耀的TODO清单。任何给定的活动都可以分配给员工。
每个活动都有一个活动的执行者。这些活动是联系人(人)或客户(业务)。每个活动都会有一个联系人或一个客户,他们将完成活动。例如,该活动可能是“向Spacely Sprockets(客户)发送感谢卡”或“向Tony Almeida(联系人)发送营销文献”。
从这个结构,我们就需要能够查询找到所有指定员工必须做的活动,在一个单一的关系,列出他们会是这样的在它最简单的形式:
-----------------------------------------------------
| Activity | Description | Recipient of Activity |
-----------------------------------------------------
这里的想法是避免让联系人和客户有两列为空。
我希望我已经正确描述了这一点,因为这并不像第一眼那样明显。
所以问题是:什么是数据库的“正确”的设计,你将如何查询它来获取所需的信息?
似乎有关于客户和联系人的一些混淆。他们分开桌子吗?客户和联系人之间是否有任何关系?他们是否需要使用现有的表格,还是新的或可重构的表格? – ulty4life 2010-10-21 02:55:12
是的,客户和联系人是独立的实体。也许他们不应该,但他们是。 ;-) – 2010-10-21 17:23:39