表后缀:
身份证,姓名

(3, 'com')


表域名:
身份证,姓名

(2, 'microsoft')


表域:
id,name_code,sufix

(1, 2, 3)    -- microsoft.com


表SubDomainName:

(4, 'windows')


表子域:
id,name_code,domain

(7, 4, 1)     -- windows.microsoft.com


表格电子邮件:
ID,名称,服务器

(3, 'myemail', 7)    -- myemail@windows.microsoft.com
(4, 'other', 1)      -- other@microsoft.com


这是外键约束的问题。如何解析域和子域以正确创建电子邮件?我在使用NULL值的Unique INDEX时遇到问题,例如,一种解决方案可能是:

表格电子邮件:
ID,名称,子域,域

(3, 'myemail', 7, NULL)  -- myemail@windows.microsoft.com
(4, 'other', NULL, 1)    -- other@microsoft.com




(5, 'newemail', NULL, NULL)  -- will duplicated values in the table
(6, 'newemail', NULL, NULL)
(7, 'newemail', NULL, NULL)
(8, 'newemail', NULL, NULL)




(**3**, 'myemail', 7, 1)   -- myemail@windows.microsoft.com and myemail@microsoft.com

最佳答案

怎么样(5,“ newemail”,domain_id / subdomain_id,“ domain / subdomain”)

所以你可以

(5,'newemail',7,'subdomain')或(5,'newemail',1,'domain')

您仍然可以LEFT JOIN SubDomain和Domain表,但是您将基于“ domain / subdomain”字段仅从所需的数据中获取数据。

那是快速的解决方案。恕我直言,您的数据库结构不是很好,可以进行优化。您应该将所有域/子域记录保留在一个表中,并将其用于电子邮件。该表应为表FullDomain:id,name_code,domain_name,subdomain_name

(1, 3, 2, 4) -- windows.microsoft.com

要么

(1, 3, 2, 0) -- microsoft.com

10-05 23:47
查看更多