2010-12-09 6 views
2

내 데이터베이스에 상태 목록을 저장하려고합니다. 그러나 나는 그것을 '국가'라고 부를 수없는 것 같습니다. SQL Management Studio의 Intellisense는 색다른 느낌을줍니다.SQL Server에서 State라는 테이블을 만들 수 없습니까?

올바른 가정인가요? 다른 것으로해야합니까?

create table Category 
(
    ID int primary key identity(1,1), 
    Name nvarchar(256) not null 
) 

go 

create table Subcategory 
(
    ID int primary key identity(1,1), 
    Name nvarchar(256) not null, 
    IDCategory int foreign key references Category(ID) 
) 

go 

create table Advert 
(
    ID int primary key identity(1,1), 
    IDAdvertiser int foreign key references Advertiser(ID), 
    IDSubcategory int foreign key references Subcategory(ID), 
    ImagePath nvarchar(2048) not null, 
    StartDate datetime not null, 
    FinishDate datetime 
) 

go 

create table Advertiser 
(
    ID int primary key identity(1,1), 
    Name nvarchar(2048) not null, 
    Contact nvarchar(256) not null, 
    Website nvarchar(256) not null 
) 

go 

create table State 
+1

상태가 너무 일반적/공통적이므로 정보를 더 많이 사용하십시오. IE 상태 무엇? 그런 다음 예약어와 충돌하지 않으며 * 다른 사용자가 데이터 모델을 읽는 것이 더 분명합니다. –

+0

OMG 조랑말에 동의합니다. 테이블 이름은 직관적이어야합니다. Tbl 이름은 포함 된 데이터에 대한 힌트를 제공해야합니다. – MarlonRibunal

+0

왜 사용하지 않습니까? 다른 나라들에는 이들이 없기 때문에 A의 미국 국외로 나가기를 원한다면 추측 할 수 없습니다. [이 주석 사슬] (http://stackoverflow.com/questions/3637935/column-type-and- 3638587 # 3638587) – gbn

답변

6

시스템 예약어와 충돌하지 않으려면 [상태]라고 지정하십시오. 대부분의 경우, 그것이 반드시 필요한 것은 아니지만, 구문 분석기는 대개 테이블 이름을 참조하는 시점을 알기에 충분히 똑똑합니다.

2

정확한 정보를 알려주는 데 인텔리 센스를 사용하지 마십시오. State이라는 테이블이 좋습니다. 하지만 의심스러운 경우 []에 서라운드를 입력하십시오 (예 : [State]).

0

대부분의 테이블은 약간 다른 이름 지정 방식을 따릅니다.

예를 들어, 단일 항목을 나타내는 "상태"대신 "상태"라고합니다. '광고주'대신 '광고주'를 사용합니다.

+1

Entity Framework에서 생성하는 콜렉션을 복수화하는 것이 좋기 때문에 필자는 그 이름을 개별적으로 지정합니다. –

+0

나는 동의한다. 또한 직장에서 우리 제품 중 하나에 Progress 4GL을 사용합니다. 쿼리 구문은 "FOR EACH [테이블 이름] WHERE ..."입니다. "각 주 (州)"는 "각 주 (州)"보다 더 나은 소리로 들립니다. –

+0

그래, 나는 이것이 어떤 ORM 또는 다른 관련 도구에 의해 부분적으로 구동되는 선호 물건이라고 생각했다. – NotMe

관련 문제