【发布时间】:2023-11-09 03:01:02
【问题描述】:
我正在 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
)
如果我在一个表中创建所有字段..是否违反规范化?以及对表的影响是什么,除了由于时间大幅增加而变得缓慢之外。
如果我为 Contact(Biodata,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"
)
感谢您关心表达和分享您的意见和知识。
【问题讨论】:
标签: sql-server vb.net normalization rdbms