具有不同需求的客户的网站架构

时间:2013-12-10 01:58:10

标签: php mysql

我不确定这篇文章是否会破坏本网站的某些规则,我根本不知道如何搜索这样的问题(我确实尝试过)。

我为我的公司(PHP / MySQL)创建了一个网站,为我们的客户制作名片。他们得到一个小形式,选择一些变量并订购卡片,生成pdf并且我们公司打印卡片(它是印刷公司)。我们现在正在寻找向网站添加第二个客户端,我必须使网站能够处理两个客户端,但不能让他们彼此了解。这一切都很好,最终我们将有很多公司的客户使用该网站,我计划这样做,以便公司内部的任何人都可以设置客户端和他们的名片指标。它现在远不及那个,第一个客户的卡片指标在php文件中硬编码,但它最终会以某种方式从数据库中提取的布局规则生成卡片。

不同的公司在名片上有着截然不同的东西,不同类型的电话号码,标题,资格,布局规则等。我有三个可能的想法,如何在SQL方面实现这一点。

1)(这是第一种方式,坦率地说,我认为这很糟糕)制作一个具有各种可能类型字段的表,不同的客户端使用不同的字段。这个问题是它总是需要程序员,我的目标是使网站(最终)完全自给自足。我想是一个CMS。

2)使用一个表,但列没有集名,只有通用名(colA,colB或其他),然后由另一个表分配值。一旦应用程序被用来做这件事,这将是复杂的并且难以弄清楚结构,但是它的想法是它管理自己(虽然当出现问题时我认为解开它将是一场噩梦)。

3)混合动力车。如果有人创建了客户端,则该站点为每个客户端创建一个表,而另一个表只跟踪所有客户端的用户。我认为这可能会变得混乱。

4)其他一些方式耸肩

5)(编辑)只是考虑某种方式或将键/值对存储在表格中......

我不是一个经验丰富或训练有素的开发人员,所以我正在学习,因为我要去(很明显,我选择为公司做这件事)。我只是在寻找一些方向,走下去的道路。我的最终目标是一个网站,不需要工作人员来找我添加关于卡的更改信息或特定于客户的详细信息(如定价,他们可以订购的qtys,他们的卡模板或其他)。欢迎任何想法。

1 个答案:

答案 0 :(得分:0)

看来你的第三选择是你最理想的选择,但应该略微修改。 你现在可能不是这样做的,但是你想要根据对象来思考。根据您的说明,我看到至少两个:ClientCard。您不希望为每个客户创建一个表,因为这将变得多余,我确定如果您要为名片创建一个站点,那么客户端之间的字段就不会太多。

例如,设置一个Client表,如下所示:

Create table `Clients` {
`clientId` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`location` varchar(255) NOT NULL,
`description` `text`,
... more fields
}

设置卡表同样如此,显然需要使用必填字段并在php中创建相应的类。我知道你说过每家公司的卡片都有不同的东西,所以也许你可以把它分成几个部分。

最终是的,从它的声音中你可能想要使用CMS来管理你的内容,虽然从它的声音,它可能没有必要。你应该研究一个简单的MVC框架,比如codeigniter或yii(两者都是php框架)。如果您刚刚开始,请查看面向对象编程here的教程。

你不会想要实现你的第一选择,因为这将是一个令人头痛的问题,以后修复,这不是一个好习惯。

第二种选择也是一个坏主意,因为它可能会在以后再次混淆,这不是一个好习惯。

希望我没有把你困惑,并指出你正确的方向。对不起,我觉得我立刻向你扔了很多。查看面向对象的编程技术,并查看php端的轻量级MVC框架。

相关问题