如何在联系人数据库中设置关系

时间:2012-06-05 16:34:05

标签: php mysql

我目前正在开展一项新的计划来学习PHP和MySQL。我以前使用Access做了一些简单的数据库,但这个数据库是一个以网络为中心的数据库,用于跟踪包括联系人和项目信息在内的大量数据。我需要在各种关系中链接各种表格,我不确定最好的方法。由于我刚开始使用PHP / MySQL,我正在研究尽可能多的在线学习资源。如果有人对书籍或网站提出建议,我将不胜感激。

在设置表格时,我关注的一个主要领域是联系人。我将拥有各种联系人,包括:员工,客户,供应商,分包商等。单个联系人可以是多种类型,每种类型都有各种与其相关的附加字段。我的想法是有一个联系人表链接到各种联系人类型的其他表。我不确定哪种字段类型或表格选项设置最好...思考?

此方案可能会在数据库的其他区域以及项目和产品中发挥作用。

任何指针/方向都会受到赞赏。

WES

3 个答案:

答案 0 :(得分:0)

您熟悉Object Oriented Design

在RDBMS中,比如MySQL,我会按如下方式设计数据库:

  • 联系人(名字,姓氏等)
    • 员工
    • 供应商
    • 客户

扩展 Contacts的表格将保留其特定数据以及contact_id列,从而创建关系。

顺便说一句,NoSQL解决方案原生解决了这个问题,因为它们没有严格的架构。这意味着您可以为每条记录保存各种数据。

答案 1 :(得分:0)

我会考虑一下你将如何使用这些扩展字段。当然可以为联系人创建一个表,你肯定可以为每个联系人类型(员工,客户等)创建一个表,其中一列将记录连接到联系表(因此员工将拥有employee_id,contact_id,propertyOne,propertyTwo等) 。

另一个选项虽然如果您的应用程序是以联系人为中心的,并且您真的只想将不同类型的信息与联系人关联起来,这可能会很方便,那就是有一个联系人表,包含扩展信息类型的表(例如“contactTypes”,它将具有供应商类型具有帐单地址的信息)和第三个表以实际保存所有数据(名称 - 值对)。这更加流畅,因为它可以让您添加新类型的联系人或向类型添加字段,而无需实际更改您的架构。第一个选项(Jason McCreary's)可能会更好地扩展,如果你有很多很多记录......

关于资源 - 那里有很多东西,我甚至无法开始为你缩小范围 - 看看php手册,只是google“php mysql tutorial” - 大量的东西。

答案 2 :(得分:0)

我推荐的一本帮助我很多的书是Beginning-PHP-MySQL-Novice-Professional

并确保您观看以下视频,但如果您不了解基本信息,可能会提高视频效果。 Bbuild-a-login-system-for-a-simple-website/

对于数据库关系以及介绍,请访问Coding HORROR

我希望这有帮助..