테이블 생성
각 테이블은 대응하는 엔티티 객체 (~DbItem)에 ObjectDao를 통해 자동으로 맵핑될 수 있도록 정해진 형식과 이름을 사용합니다. 이 문서에서는 테이블에서 사용 가능한 데이터 형식과 테이블 규칙을 설명합니다.
생성 쿼리 예제
CREATE TABLE TableNameIsPascalCase( -- 테이블명은 PascalCase 를 사용합니다.
[id] int IDENTITY(1,1) NOT NULL, -- 테이블의 첫번째 컬럼은 id 로 사용합니다.
[columnIsCamelCase] nvarchar(max) null, -- 컬럼 명은 camelCase 를 사용합니다.
[intCol] int null,
[floatCol] float null,
[nvarcharCol] nvarchar(80) null,
[bitCol] bit null,
[datetimeCol] datetime null,
[xmlCol] xml null, -- Model의 XDocument 필드는 xml 타입으로 저장됩니다.
[objectJsonSerializeCol] nvarchar(max) null, -- Model의 Class 필드는 Json Serialize 되어 nvarchar 타입으로 저장됩니다.
[encryptedCol] varbinary null, -- 암호화될 컬럼은 varbinary 타입으로 지정합니다.
CONSTRAINT [PK_TableNameIsPascalCase] PRIMARY KEY CLUSTERED (
[id] DESC
)
) ON [PRIMARY]
컬럼 형식
다음 컬럼 형식만 사용합니다. 엔티티 객체에서 사용하려는 형식과 매칭되는 형식으로 선언해야 합니다. 암호화된 데이터는 varbinary
로 선언하며 VO 객체에서 선언한 형식으로 변환 됩니다.
DbType | c# Type | 비고 |
---|---|---|
int | int, enum | |
float | double/float | |
nvarchar | string | |
bit | bool | |
datetime | DateTime | |
xml | XDocument | |
nvarchar | Object | Json Serialize 하여 저장 |
varbinary | (any) | 암호화되어 저장 VO 객체에서 속성 지정 |
특별한 의미를 가지는 컬럼
Name | DbType | 내용 |
---|---|---|
id | int | 아이디 |
regDate | DateTime | 등록일자입니다. Insert 시점을 기준으로 하며, Update 시에는 갱신 하지 않습니다. 업데이트 일시가 필요한 경우 별도의 컬럼을 사용합니다. |
state | string | 등록 상태 입니다. 한번 Insert 된 값은 Delete 하지 않고 이 값만 변경합니다. ‘REG’ , ‘DEL’ |