我有存储所有客户信息的 XML。每当我的 PHP 代码运行时,它都会将 XML 中的客户数据插入到数据库中。这是桌子。并非所有客户都是网络,所以我将所有客户信息直接保存到一个名为“客户”的表中。
顾客:
customer_id int(40) primary key
CustomerAccountNumber varchar(60)
CustomerAccountName varchar(255)
AccountBalance double
InvAddressLine1 varchar(500)
Rep varchar(20)
为了存储“网络客户”登录名和用户名,我有一个名为“Web_customers”的不同网络帐户表,其中主键为“CustomerAccountNumber”。
网络客户:
web_id int(11) primary key
UserName varchar(39)
CustomerAccountNumber varchar(39)
EmailAddress varchar(255)
Pwd varchar(70)
customer_type varchar(10)
样本数据:
customer_id CustomerAccountNumber CustomerAccountName AccountBalance InvAddressLine1 Rep
1 Accnt1 Myname1 1098 address1 Mik
2 Accnt2 Myname2 2398 address2 Richi
3 Accnt3 Myname3 2234398 address3 Santa
4 Accnt4 Myname4 2233398 address4 Den
由于我运行 PHP 脚本以不断重新加载数据,因此 customer_id 经常更改,这就是为什么我不能在我的另一个表中选择它作为外键:
WEB_CUST:
web_id UserName CustomerAccountNumber EmailAddress Pwd customer_type
1 Accnt1 Accnt1 b@gmail.com 123 simple
2 Accnt212 Accnt2 dj@gmail.com 123 complex
3 Accnt313 Accnt2 asdj@gmail.com 123 complex
4 Accnt315 Accnt2 342j@gmail.com 123 complex
我有两种类型的客户,“简单”和“复杂”。简单客户有一个 CustomerAccountNumber,在对应的 WEB_CUST 表中只有一个用户名。
复杂客户是那些具有相同帐号的客户。但问题在于“复杂”的客户。当具有用户名 Accnt313 和 Accnt2 的 WEB 客户更改信息时,它会更新我的 XML 表“客户”中具有相同 Accnt2 的所有其他客户。 注意 我的 XML 中的所有字段都是使用插入批处理方法直接插入到客户表中的。因为,我的 XML 有超过 60,000 个,并且将数据解析和插入子表可能会引发性能问题。这就是为什么,我没有打破它起来,这就是为什么我正在寻找替代解决方案。
我怎样才能防止这种情况发生?在这种情况下如何正常化?由于 XML 解析效率和重新加载原因,有没有一种方法可以在不干扰主 XML 表“客户”的情况下进行规范化?