1
昨天我接受了一位SQL开发人员的现场采访,面试官问我一个我无法令人信服地回答的问题。如果有人能以正确的解决方案帮助我,我将不胜感激。访问者问:“我有一个应用程序和数据库需要为将来的应用程序开发进行规范化,目前,我有一个表(原始),我希望你用一个父子关系转换成两个表。父母与子女)SQL中的数据规范化(Parent-Child)
原始表的stucture是这样的:
CREATE TABLE [dbo].Original(
ID [varchar](11) NOT NULL,
SourceDatabase [varchar](10) NULL,
CompanyName [varchar](25) NULL,
Address [nvarchar](30) NULL,
City [char](25) NULL,
State [char](2) NULL,
Zip [char](9) NULL
)
--Test Data
INSERT INTO [dbo].[Original]
([ID]
,[SourceDatabase]
,[CompanyName]
,[Address]
,[City]
,[State]
,[Zip])
VALUES
('1000000001','ORACLE', 'Microsoft', '123 ABC', 'EDISON', 'NJ', '10000')
, ('1000000001','DB2', 'Microsoft', '123 ABC', 'EDISON', 'NJ', '10000')
, ('1000000024','ORACLE', 'Microsoft', '456 ABC', 'EDISON', 'NJ', '10000')
, ('1000000035','DB2', 'LinkedIn', '123 ABC', 'Mountain View', 'CA', '10056')
, ('1000000002','MSSQL', 'GOOGLE', '456 9th Street', 'PROVIDENCE', 'RI', '10001')
, ('1000000003','MSSQL', 'APPLE', '3100 EAST End Ave,Suite 70729', 'GREENWICH', 'CT', '10002')
回答以下问题: -
1)什么是我需要定义一个父母和孩子表
2)LinkedIn将有相同的父ID为微软的属性(LinkedIn是微软的一个子公司)?
3)样本数据1,2和3是否有相同的parent_ID? “
谢谢!
这是一个很糟糕的面试问题。我会问采访者为什么他们认为把这个分成两个表是正常的。根据使用情况,这个表格可能已经被正常化了。或者这是以某种方式澄清了他们正在寻找的东西。我讨厌那些模糊的面试问题,你几乎不得不阅读他们的想法。 –
你必须阅读他们的想法 - 就像你真正的人试图给你的要求:) – Randy