昨日、面接者が私に納得できない質問をしたSQL開発者の地位に関するオンサイトのインタビューを受けました。もし誰かが正しい解決策を手伝ってくれれば幸いです。SQL(親子)のデータ正規化
インタビュアーは、「将来のアプリケーション開発のために正規化する必要があるアプリケーションとデータベースがあります。現在、親子関係のある2つの表に変換する必要がある(元の) 。親と子)
オリジナルテーブルの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のは、Microsoftのと同じ親IDを持つことになりますが(LinkedInのは、Microsoftの子会社である)は何ですか?
3)サンプルデータ1,2,3のparent_IDは同じですか? 「
ありがとう!私は意味がありません二つのテーブルに@Sean、分割に同意
これは面倒なインタビューの質問です。私はインタビュアーに、これをちょうど2つのテーブルに分割することが正規化されていると思う理由を尋ねたでしょう。そして使用法によっては、このテーブルはすでに正常化されている可能性があります。あるいは、何とか彼らが探しているものについて何らかの明確化をしていたのです。私はこれらの面接の質問が嫌なので、あなたはほとんど彼らの心を読む必要があります。 –
あなたはあなたの心を読まなければなりません - 実際の人と同じように、あなたに要求を与えようとしています:) – Randy