Przeglądaj źródła

넷퍼시메일 솔루션 회원정보동기화 ASIS 테이블

gagamel 5 lat temu
rodzic
commit
862143c2a7

+ 30 - 0
산출물/3.설계/03.인터페이스/넷퍼시메일/회원동기화테이블_ASIS/TB_BAT_Member.sql

@@ -0,0 +1,30 @@
+USE [iSTYLE24_MailBatch]
+GO
+
+/****** Object:  Table [dbo].[TB_BAT_Member]    Script Date: 2021-05-10 오후 1:48:17 ******/
+SET ANSI_NULLS ON
+GO
+
+SET QUOTED_IDENTIFIER ON
+GO
+
+CREATE TABLE [dbo].[TB_BAT_Member](
+	[MemberGuid] [uniqueidentifier] NOT NULL, --회원GUID 
+	[LoginId] [nvarchar](100) NOT NULL,       --로그인ID
+	[MemberName] [nvarchar](100) NOT NULL,    --회원명
+	[Email] [nvarchar](200) NOT NULL,         --이메일  
+	[isEmail] [bit] NOT NULL,                 --메일수신여부
+	[Gender] [nvarchar](20) NOT NULL,         --성별
+	[DefaultPostalCode] [char](10) NOT NULL,  --우편번호
+	[DateRegister] [datetime] NOT NULL,       --가입일
+	[DateLastModified] [datetime] NOT NULL,   --데이터수정일
+	[Age] [int] NOT NULL,                     --연령
+ CONSTRAINT [PK_TB_BAT_Member_MemberGuid] PRIMARY KEY CLUSTERED 
+(
+	[MemberGuid] ASC
+)WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+
+USP_BAT_MAIL_DATA

+ 24 - 0
산출물/3.설계/03.인터페이스/넷퍼시메일/회원동기화테이블_ASIS/TB_BAT_MemberMileage.sql

@@ -0,0 +1,24 @@
+USE [iSTYLE24_MailBatch]
+GO
+
+/****** Object:  Table [dbo].[TB_BAT_MemberMileage]    Script Date: 2021-05-10 오후 1:48:29 ******/
+SET ANSI_NULLS ON
+GO
+
+SET QUOTED_IDENTIFIER ON
+GO
+
+CREATE TABLE [dbo].[TB_BAT_MemberMileage](
+	[MemberGUID] [uniqueidentifier] NOT NULL,
+	[LoginId] [nvarchar](100) NOT NULL,        --로그인ID
+	[Mileage] [int] NOT NULL,                  --하루전 회원의 최종 마일리지 
+	[Date] [datetime] NOT NULL,                --하루 전일
+ CONSTRAINT [PK_TB_BAT_MemberMileage_MemberGUID] PRIMARY KEY CLUSTERED 
+(
+	[MemberGUID] ASC,
+	[Date] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+

+ 27 - 0
산출물/3.설계/03.인터페이스/넷퍼시메일/회원동기화테이블_ASIS/TB_BAT_MemberPoint.sql

@@ -0,0 +1,27 @@
+USE [iSTYLE24_MailBatch]
+GO
+
+/****** Object:  Table [dbo].[TB_BAT_MemberPoint]    Script Date: 2021-05-10 오후 1:48:35 ******/
+/*******회원의 최종 포인트*********/
+SET ANSI_NULLS ON
+GO
+
+SET QUOTED_IDENTIFIER ON
+GO
+
+CREATE TABLE [dbo].[TB_BAT_MemberPoint](
+	[MemberGUID] [uniqueidentifier] NOT NULL,
+	[LoginId] [nvarchar](100) NOT NULL,       --로그인ID
+	[Point] [int] NOT NULL,                   --하루전회원의 최종 포인트 
+	[Date] [datetime] NOT NULL,               --하루전일
+ CONSTRAINT [PK_TB_BAT_MemberPoint_MemberGUID] PRIMARY KEY CLUSTERED 
+(
+	[MemberGUID] ASC,
+	[Date] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+
+
+ 

+ 24 - 0
산출물/3.설계/03.인터페이스/넷퍼시메일/회원동기화테이블_ASIS/TB_BAT_MemberWithdrawal.sql

@@ -0,0 +1,24 @@
+USE [iSTYLE24_MailBatch]
+GO
+
+/****** Object:  Table [dbo].[TB_BAT_MemberWithdrawal]    Script Date: 2021-05-10 오후 1:48:42 ******/
+SET ANSI_NULLS ON
+GO
+
+SET QUOTED_IDENTIFIER ON
+GO
+
+CREATE TABLE [dbo].[TB_BAT_MemberWithdrawal](
+	[MemberGUID] [uniqueidentifier] NOT NULL,
+	[LoginId] [nvarchar](100) NOT NULL,     --로그인아이디
+	[MemberName] [nvarchar](50) NOT NULL,   --회원명
+	[DateRegister] [datetime] NOT NULL,     --가입일
+	[DateWithdraw] [datetime] NOT NULL,     --등록일
+ CONSTRAINT [PK_TB_BAT_MemberWithdrawal_MemberGUID] PRIMARY KEY CLUSTERED 
+(
+	[MemberGUID] ASC
+)WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+

+ 102 - 0
산출물/3.설계/03.인터페이스/넷퍼시메일/회원동기화테이블_ASIS/USP_BAT_MAIL_DATA.sql

@@ -0,0 +1,102 @@
+/*      
+----------------------------------------------------------------------------------      
+◑ SP Name    : dbo.USP_BAT_MAIL_DATA      
+◑ Description   : 대용량 메일 솔루션 일배치 데이터      
+        - 회원 DB: TB_BAT_Member      
+        - 탈퇴회원 + 휴면회원 DB: TB_BAT_MemberWithdrawal      
+        - 회원 아이포인트: TB_BAT_MemberPoint      
+        - 회원 아이머니  : TB_BAT_MemberMileage      
+◑ Called by    :      
+◑ Input Parameters  :       
+◑ Output Parameters  :       
+◑ Exec     :       
+◑ Change History      
+-----------------------------------------------------------------------------------------------      
+Date   Author  Description      
+-----------------------------------------------------------------------------------------------      
+2013-01-21 유민호  최초생성. 배치를 돌기 하루전 데이터를 가져와 데이터를 쌓아두고, 데이터를 7일이 지난 데이터는 삭제한다      
+2013-08-12 유민호  LinkedServer 변경 ( DB01_MALL -> [DB01.ISTYLE24.COM] )                              
+2014-01-03 김한얼  멤버, 탈퇴멤버 7일전 데이터 삭제를 전체로 바꾸고 전체를 쌓도록 한다. 추후 포인트정보도 수정해야함.      
+2014-10-15  김한얼  TB_BAT_Member에 MemberGUID 컬럼 추가 후 Insert 할 수 있도록 쿼리 수정      
+2015-08-26 박운용  회원DB분리로 인해, 휴면회원도 탈퇴회원 테이블에 저장      
+2016-11-29  성근영      탈퇴 회원 테이블에 MemberGUID 추가, 포인트 정보 전체 삭제 후 하루 전 데이터만 입력    
+2020-01-11  이선미  등록일 null 체크     
+-----------------------------------------------------------------------------------------------      
+*/      
+CREATE PROCEDURE [dbo].[USP_BAT_MAIL_DATA]      
+ AS      
+BEGIN      
+ SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;      
+ SET NOCOUNT ON;      
+ SET XACT_ABORT ON;      
+       
+ DECLARE @CurrentDate DATETIME      
+ SET @CurrentDate = CONVERT(DATETIME, CONVERT(NVARCHAR(10), GetDate(), 121))        
+      
+ /*       
+  1. 초기화       
+ */      
+ -- 회원DB: 전체 데이터 삭제      
+ TRUNCATE TABLE dbo.TB_BAT_Member      
+ TRUNCATE TABLE dbo.TB_BAT_MemberWithdrawal      
+       
+ -- 아이포인트, 아이머니: 7일전 데이터 삭제       
+ TRUNCATE TABLE dbo.TB_BAT_MemberPoint      
+ TRUNCATE TABLE dbo.TB_BAT_MemberMileage      
+       
+ /*       
+  2. 정보 생성      
+ */      
+ -- 탈퇴회원 생성      
+ INSERT INTO dbo.TB_BAT_MemberWithdrawal WITH(ROWLOCK)      
+ SELECT MemberGUID, LoginId, MemberName, ISNULL(DateRegister, DateWithdraw), DateWithdraw       
+ FROM  istyle24_mall.dbo.TB_PRF_MemberWithdrawal WITH (NOLOCK)       
+      
+ -- 휴면계정도 탈퇴회원으로 생성      
+ INSERT INTO dbo.TB_BAT_MemberWithdrawal WITH(ROWLOCK)      
+ SELECT MemberGUID, LoginId, MemberName, DateRegister, DateDormant      
+ FROM  istyle24_mall.dbo.TB_PRF_MemberDormant WITH (NOLOCK)        
+       
+ -- 회원정보 생성 (휴면계정 제외)      
+ INSERT INTO dbo.TB_BAT_Member WITH(ROWLOCK)      
+ SELECT MemberGUID, LoginId, MemberName, Email, IsEmail, Gender, DefaultPostalCode, ISNULL(DateRegister, '1900-01-01') as DateRegister, DateLastModified, dbo.FN_MemebrAge(PID,isnull(BirthDate,'')) as Age      
+ FROM  iSTYLE24_Mall.dbo.TB_PRF_Member WITH (NOLOCK)      
+ WHERE MemberName <> '휴면계정'       
+      
+ -- 하루전 회원 포인트 수정(회원의 최종 포인트)      
+ INSERT INTO dbo.TB_BAT_MemberPoint WITH(ROWLOCK)      
+ SELECT A.MemberGUID, A.loginId, B.Remains, DATEADD(DD, -1, @CurrentDate)      
+ FROM iSTYLE24_Mall.dbo.TB_PRF_Member A WITH (NOLOCK)       
+   INNER JOIN (      
+    SELECT B.MemberGUID, B.Remains      
+    FROM (      
+     SELECT ROW_NUMBER() OVER (PARTITION BY A.MemberGUID ORDER BY A.DateCreated DESC) AS Row,      
+       A.MemberGUID, A.Remains      
+     FROM iSTYLE24_Mall.dbo.TB_PRF_MemberPoint A WITH (NOLOCK)      
+     WHERE A.DateCreated between DATEADD(DD, -1, @CurrentDate) and @CurrentDate      
+    ) AS B      
+    WHERE B.row = 1      
+   ) B ON A.MemberGUID = B.MemberGUID       
+ ORDER BY A.loginId      
+       
+ -- 하루전 회원 마일리지 수정(회원의 최종 마일리지)      
+ INSERT INTO dbo.TB_BAT_MemberMileage WITH(ROWLOCK)      
+ SELECT A.MemberGUID, A.loginId, B.Remains, DATEADD(DD, -1, @CurrentDate)      
+ FROM iSTYLE24_Mall.dbo.TB_PRF_Member A WITH (NOLOCK)      
+   INNER JOIN (      
+    SELECT B.MemberGUID, B.Remains      
+    FROM (      
+     SELECT ROW_NUMBER() OVER (PARTITION BY A.MemberGUID ORDER BY A.DateCreated DESC) AS Row,      
+       A.MemberGUID, A.Remains      
+     FROM iSTYLE24_Mall.dbo.TB_PRF_MemberMileage A WITH (NOLOCK)         
+WHERE A.DateCreated between DATEADD(DD, -1, @CurrentDate) and @CurrentDate            
+    ) AS B      
+    WHERE B.row = 1      
+   ) B ON A.MemberGUID = B.MemberGUID      
+ ORDER BY A.loginId      
+       
+      
+ SET NOCOUNT OFF;      
+END      
+      
+