2012-06-05 119 views
0

我目前正在开始学习PHP和MySQL的新冒险。过去我使用Access做了一些简单的数据库,但是这个数据库是一个以网络为中心的数据库,用于跟踪无数的数据,包括联系人和项目信息。我需要链接各种关系中的各种表格,我不确定最好的方式来做到这一点。由于我刚刚开始使用PHP/MySQL,我正在尽可能地研究在线学习资源。如果任何人有书籍或网站的建议,我将不胜感激。如何在联系人中设置关系数据库

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

这种情况可能会在数据库的其他领域以及项目和产品中发挥作用。

任何指针/方向将不胜感激。

WES

回答

0

你熟悉Object Oriented Design

在RDBMS,如MySQL,我会如下设计数据库:

  • 联系人(姓,名等)
    • 员工
    • 厂商
    • 客户
    • etc

您的表格延伸Contacts将保存其具体数据以及一个contact_id列,创建该关系。

顺便说一下,NoSQL解决方案本身就解决了这个问题,因为它们没有严格的模式。这意味着您可以保存每条记录的各种数据。

+0

谢谢 - 超越我的时刻。您上面说的“联系人”是一个包含联系人姓名数据的表格,其他缩进的项目是包含每个类别的详细信息的附加表格,并且都通过Contact_id链接到“联系人”? – Walt

+0

是的,就是这样。 –

0

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

另一个选项虽然,这可能是方便,如果你的应用是联系人为中心的,你真的只是希望能够将不同种类的信息与联系人相关联,将有一个联系表,包含类型的表(例如,“contactTypes”,它将提供供应商类型具有账单地址的信息)和第三个表格来实际保存所有数据(名称 - 值对)。这更加流畅,因为它可以让您添加新类型的联系人或将字段添加到某个类型,而无需实际更改模式。如果你有很多很多的记录,第一个选项(Jason McCreary的)可能会扩展得更好......

关于资源 - 这里有太多的东西,我甚至无法开始缩小它 - 看看PHP手册,只是谷歌“PHP的MySQL教程” - 吨的东西。

+0

我喜欢添加而不重新创建轮子的想法。我现在有很多联系人类型,但有些人可能想要添加更多。 – Walt