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