구독 스키마 정의

Notification Services는 이벤트와 구독 데이터를 연결하는 Transact-SQL 쿼리를 사용하여 알림을 생성합니다. 대부분의 응용 프로그램의 경우 알림 생성 시 사용되는 구독 필드를 지정해야 합니다. 이러한 필드는 구독 클래스의 스키마에서 지정합니다.

이 항목에서는 Notification Services에서 추가한 기본 필드, 스키마에 추가할 수 있는 표준 필드 및 사용자 지정 필드를 만드는 방법을 설명합니다.

기본 구독 필드

모든 구독에는 공통 정보가 필요합니다. Notification Services는 각 구독을 고유하게 식별하고 각 구독에 대한 구독자를 식별하고 구독의 설정 여부를 확인할 수 있어야 합니다. 구독 클래스가 예약 구독을 지원할 경우 구독은 구독 일정과 연결되어야 합니다.

간편한 응용 프로그램 개발을 위해 Notification Services는 이러한 공통 정보에 대한 다음과 같은 구독 클래스 필드를 자동으로 추가합니다.

[!참고] 구독 클래스 스키마에 다음 필드는 정의하지 마십시오. 이렇게 하면 필드 정의가 중복되어 응용 프로그램을 만들 수 없게 됩니다.

  • Notification Services에는 SubscriptionId, SubscriberIdEnabled 필드가 있습니다. Notification Services는 응용 프로그램을 만들 때 구독 테이블 정의에 다음 열을 추가합니다.
    • SubscriptionIdbigint ID 열입니다. Notification Services는 새로운 각 구독에 대해 이 열의 값을 제공합니다.
    • SubscriberIdnvarchar(255) 열입니다. 사용자가 구독을 추가할 때 구독 관리 인터페이스는 구독자 ID 값을 제공해야 합니다.
    • Enabled는 각 구독에 대해 프로그래밍 방식으로 설정할 수 있는 Boolean 필드입니다. Enabled 값을 false로 설정하면 구독에 대한 알림 생성이 일시 중지됩니다. 기본값은 true입니다.
  • 구독 클래스에 예약 규칙이 있으면 Notification Services에는 ScheduleId 필드가 있습니다. 구독 테이블에서 이 필드는 구독 일정 테이블에 대한 외래 키가 됩니다. 사용자가 예약 구독을 만들 때 구독 관리 인터페이스에 일정 값이 정의됩니다. ScheduleId는 NULL 값을 허용하는 int 열입니다. 이 경우 구독 클래스는 이벤트 기반 구독과 예약 구독을 모두 지원합니다.

표준 필드: DeviceName 및 SubscriberLocale

응용 프로그램에 따라 구독 클래스 스키마에 DeviceNameSubscriberLocale의 두 필드를 정의할 수 있습니다. 구독자가 장치 및 로캘을 선택할 수 있도록 하기 위해 각 구독 클래스에 이러한 필드가 정의되지만 반드시 정의할 필요는 없습니다. 이 필드를 정의하면 배포자는 알림 서식 지정 및 배달을 위해 해당 정보를 사용할 수 있습니다.

DeviceName 필드

구독자 장치는 알림이 배달되는 위치를 나타냅니다. 장치는 전자 메일, Windows Messenger, 휴대 전화 또는 응용 프로그램이 지원하는 다른 장치일 수 있습니다.

사용자가 알림을 생성하면 알림 데이터에는 알림 배달을 위한 장치 이름이 포함되어야 합니다. 구독자가 구독을 만들 때 장치를 지정할 수 있게 하려면 구독 클래스 스키마에 DeviceName 필드를 포함시키십시오.

DeviceName 필드에 대해 다음 속성을 사용하십시오.

  • 필드 이름: DeviceName
  • 필드 유형: nvarchar(255)
  • 필드 한정자: NOT NULL

구독자 주소와 같은 장치 관련 정보는 인스턴스 데이터베이스의 구독자 데이터에 포함되어 있습니다. NSSubscriberDeviceView 뷰를 사용하여 Notification Services 인스턴스에 대한 구독자 및 구독자 장치 정보를 검토하십시오. 자세한 내용은 NSSubscriberDeviceView를 참조하십시오.

스키마에서 DeviceName 필드를 제외시킬 경우 다음 작업 중 하나를 수행해야 합니다.

  • 응용 프로그램이 하나의 장치만 지원할 경우 알림 생성에 사용되는 Transact-SQL 규칙에 정적 장치 이름을 제공하십시오.
  • 응용 프로그램이 여러 개의 장치를 지원할 경우 장치를 동적으로 선택하십시오. 예를 들어 구독자에 여러 개의 장치가 있으며 응용 프로그램에서 시간에 따라 다르게 장치를 선택할 수 있습니다. 업무 시간 중에는 구독자의 업무 전자 메일 계정으로 모든 알림을 보내고 근무 외 시간에는 구독자의 전화로 중요한 알림을 보내고 다른 알림은 구독자의 집 전자 메일 계정으로 보낼 수 있습니다.

SubscriberLocale 필드

로캘은 알림에 대한 언어 및 국가/지역을 나타냅니다. Notification Services는 다양한 로캘을 지원합니다. 로캘 목록을 보려면 Subscriber Locale Codes를 참조하십시오.

알림을 생성할 때 알림 데이터에는 로캘이 포함되어야 합니다. 구독자가 로캘을 지정할 수 있게 하려면 구독 클래스 스키마에 SubscriberLocale 필드를 포함시키십시오.

SubscriberLocale 필드에 대해 다음 속성을 사용하십시오.

  • 필드 이름: SubscriberLocale
  • 필드 유형: nvarchar(10)
  • 필드 한정자: NOT NULL

SubscriberLocale 필드를 제외시킬 경우 다음 중 하나를 수행해야 합니다.

  • 응용 프로그램이 단일 로캘만 지원할 경우 알림 생성에 사용되는 Transact-SQL 규칙에 정적 로캘을 제공하십시오.
  • 응용 프로그램이 여러 로캘을 지원할 경우 다른 데이터베이스에 있는 사용자 프로필 테이블과 같은 다른 원본에서 구독자 로캘을 선택합니다.

사용자 지정 구독 필드

대부분의 응용 프로그램에는 사용자 지정 구독 필드도 있습니다. 이러한 필드는 구독자가 해당 구독에서 사용자 지정할 수 있는 값을 정의하며 구독 테이블에 열을 만드는 데 사용됩니다.

사용자 지정 필드를 만들려면 구독자가 해당 구독을 사용자 지정하기 위해 제공할 수 있는 정보를 알아야 합니다. 예를 들어 날씨 응용 프로그램을 사용할 경우에는 사용자들이 도시만 선택할 수 있으므로 'city' 사용자 지정 필드만 정의하면 되지만 항공 응용 프로그램을 사용하는 경우에는 탑승지, 목적지, 항공 요금 및 항공사를 선택할 수 있으므로 LeavingFrom, GoingTo, PriceCarrier와 같은 필드를 만들어야 합니다.

사용자 지정 필드를 정의할 때는 필드의 SQL Server 데이터 형식과 해당 필드가 NULL 값을 허용하는지 여부와 같은 필드 한정자도 정의해야 합니다. 이러한 필드는 테이블 열을 정의하므로 테이블 열 정의에 대한 지침을 따라야 합니다. 자세한 내용은 CREATE TABLE(Transact-SQL)을 참조하십시오.

[!참고] 지원되는 유형 목록을 보려면 FieldType Element for SubscriptionClass/Schema/Field (ADF)를 참조하십시오.

스키마 정의

요약해 보면 구독 클래스에 대한 스키마를 정의할 때는 사용자 지정 필드와 표준 DeviceNameSubscriberLocale 필드(사용될 경우)를 정의하며 SubscriberId와 같은 기본 필드는 정의하지 않습니다.

구독 클래스에 대한 스키마를 정의하려면

XML을 사용하여 응용 프로그램을 정의할 경우에는 ADF(응용 프로그램 정의 파일)에 구독 클래스에 대한 스키마를 정의하고 프로그래밍 방식으로 응용 프로그램을 정의할 경우에는 NMO(Notification Services Management Objects)를 사용하여 구독 클래스에 대한 스키마를 정의합니다.

스키마 예를 보려면 구독 스키마 예를 참조하십시오.

참고 항목

개념

핵심 구독 클래스 정의
구독 규칙 정의
구독 클래스에 대한 인덱스 정의
구독 클래스에 대한 기록 정의
구독 관련 정보 수집

관련 자료

구독 클래스 정의
데이터 형식(데이터베이스 엔진)
CREATE TABLE(Transact-SQL)
FieldType Element for SubscriptionClass/Schema/Field (ADF)
구독 관리 인터페이스 개발

도움말 및 정보

SQL Server 2005 지원 받기