我正在VB.NET中开发一个“AddressBook”项目。在SQL Server2005中开发数据库时,我想遵循规范化原则并尽可能保持其规范化程度。数据库设计和规范化
我正在使用的字段是这些。
Create table AddressBook_Contact
(
Contact_ID int Primary Key,FirstName varchar(15),MiddleName varchar(15),LastName varchar(15),BirthDay datetime,HomeCountry varchar(20),HomeState varchar(20),HomeCity varchar(20),HomeMobile varchar(40),HomePhone varchar(40),HomeMobile varchar(40),HomeFax varchar(40),HomeZipCode varchar(10),HomeEmail varchar(50),HomeAddress text,
BusIndustry varchar(20),BusCompany varchar(20),BusWebsite varchar (30),BusCountry varchar(20),BusState varchar(20),BusCity varchar(20),BusMobile varchar(40),BusPhone varchar(40),BusFax varchar(40),BusZipCode varchar(10),BusEmail varchar(50),
BusAddress text,Note text
)
如果我在一个表中创建所有的字段..它反对规范化?如果由于时间的规模大幅增加而变得缓慢,对桌子的影响是什么。
如果我创建联系(生物数据,HomeInfo,的BusinessInfo)单独的表
create table AddressBook_Bio
(
BookID int Primary Key,
Title varchar(15),
FirstName varchar(15),
SecondName varchar(15),
LastName varchar(15),
BirthDay datetime,
Note text
)
create table AddressBook_Home
(
'My question in this case is should i declare BookID as foreign key or primary key to the table and why?'
FOREIGN KEY (BookID) REFERENCES AddressBook_ContactBio(BookID),
HCountry varchar(20),
HState varchar(20),
HCity varchar(20),
HMobile varchar(40),
HPhone varchar(40),
HFax varchar(40),
HZipCode varchar(10),
HEmail varchar(50),
HAddress text
)
create table AddressBook_Business
(
same issue as "AddressBook_Home"
)
感谢关怀,以表达并分享您的意见,知识。
这种解决方案看起来很公平...但它使编码有点困难,但真的保险箱空间..我会去这个..谢谢 – Saqib 2011-03-31 07:15:29
@Saqib好吧!你也可以接受这个答案:) – TheDude 2011-03-31 14:59:58