freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

分布式數(shù)據(jù)庫(kù)課程設(shè)計(jì)與實(shí)現(xiàn)——面向連鎖超市管理系統(tǒng)的分布式數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-12-30 05:08 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 。每個(gè)分店是一個(gè)相對(duì)獨(dú)立的數(shù)據(jù)庫(kù)服務(wù)系統(tǒng),其可以連接任意數(shù)量的客戶端。通信模型如下圖所示: 25 數(shù)據(jù)表的分片與位置分配設(shè)計(jì) 根據(jù)以上得到的關(guān)于主要信息數(shù)據(jù)的需求分析結(jié)果,為該連鎖超市系統(tǒng)的分布式數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行主要信息數(shù)據(jù)的分片和分配設(shè)計(jì)如下: 數(shù)據(jù)的分片設(shè)計(jì) ( 1)由于該連鎖超市系統(tǒng)的各連鎖店之間在經(jīng)營(yíng)上是獨(dú)立的,每個(gè)門店只關(guān)心自己的 經(jīng)營(yíng)狀況,有關(guān)供應(yīng)商信息、 POS 機(jī)信息、商 26 品信息和進(jìn)貨 /銷貨信息等基礎(chǔ)數(shù)據(jù)都是各門店單獨(dú)管理和使用,門店之間互不相關(guān)。因此,商品明細(xì)表、供應(yīng)商表、 POS 機(jī)表、庫(kù)存表、進(jìn)貨 /銷售開單表、進(jìn)貨 /銷售商品表、進(jìn)貨 /銷售退貨商品表按照地域(門店所在區(qū)域標(biāo)志)采用水平分片的方法得到水平片段。 ( 2)這里我們對(duì)于商品信息進(jìn)行了垂直分片,分成了商品明細(xì)表和庫(kù)存表,因?yàn)樯唐返哪承傩?,例如?kù)存量等需要經(jīng)常更新,因此將這些屬性劃分出來(lái)構(gòu)成單獨(dú)的實(shí)體可以減少系統(tǒng)開銷。 ( 3)由于整個(gè)連鎖超市的職員信息由總公司管理和維護(hù),各門店 只可以查詢本店的職員信息。所以職員信息不必分片,可以采用視圖的形式提供給各門店查詢本門店的職員信息。另外,各個(gè)區(qū)域數(shù)據(jù)庫(kù)服務(wù)器的 IP 地址信息也只是由總部管理、維護(hù),所以也不必分片。 ( 4)由于商品分類數(shù)據(jù)由總部統(tǒng)一管理并提供各門店使用,而且,商品類別信息數(shù)據(jù)在各門店都要經(jīng)常使用。因此,商品類別信息數(shù)據(jù)也不必分片。 ( 5)該分布式數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)了簡(jiǎn)單的目錄管理,記錄數(shù)據(jù)庫(kù)中各個(gè)表的分片和分配信息,以便數(shù)據(jù)更新時(shí),維護(hù)各個(gè)站點(diǎn)上數(shù)據(jù)的一致性。這個(gè)表由總部規(guī)劃建立,各門店也會(huì)經(jīng)常使用。因此,數(shù)據(jù)庫(kù)目錄信息表也不必 分片。 數(shù)據(jù)及其片段的分配設(shè)計(jì) ( 1)對(duì)于只在各門店單獨(dú)使用的除商品類別信息和數(shù)據(jù)庫(kù)目錄信息以外的其他基礎(chǔ)信息的片段,采用按區(qū)域分片然后分配到各個(gè)門店的數(shù)據(jù)庫(kù)服務(wù)器上??傉旧嫌兴虚T店的所有信息。 27 ( 2)整個(gè)系統(tǒng)的職員信息、 IP 地址信息由公司總部管理和維護(hù),所以只分配在總部站點(diǎn)中。 ( 3)商品類別信息、數(shù)據(jù)庫(kù)目錄信息是由總部統(tǒng)一規(guī)定并下發(fā)到各門店的,由于各店經(jīng)常會(huì)使用到這類基礎(chǔ)信息,因此在各門店都具有相同的副本。所以,商品類別信息、數(shù)據(jù)庫(kù)目錄信息都不會(huì)分片但被復(fù)制,且復(fù)制的個(gè)數(shù)為門店的個(gè)數(shù)。 5. 基于 SQL 的 SMS 的詳細(xì)設(shè)計(jì)(實(shí)現(xiàn)) 公共類設(shè)計(jì) 為了提高程序代碼的開發(fā)效率,便于代碼重用,在系統(tǒng)開發(fā)中,創(chuàng)建了一些數(shù)據(jù)操作類和控件擴(kuò)展類。 文件操作類 CFileOperate 為了便于對(duì)硬盤文件的操作,開發(fā)了文件操作類 CFileOperate,它通過(guò)調(diào)用 API 函數(shù)實(shí)現(xiàn)常用的文件操作。 CFileOperate 類的聲明代碼如下。 extern CString strTmpPath。 class CFileOperate { public: //構(gòu)造函數(shù) CFileOperate()。 //取得當(dāng)前 程序運(yùn)行的路徑 CString GetAppPath()。 //判斷是否存在 strFn 文件夾 BOOL IsFileExist(CString strFn, BOOL bDir)。 //制作 strFloderName 文件夾返回文件夾名 CString MakeDirectory(CString strFloderName)。 //自動(dòng)生成文件夾 28 CString MakeDirectory()。 //得到文件夾名為 strFloderName 的路徑 CString GetDirectoryPath(CString strFloderName)。 //刪除 strFloderdName 文件夾 void delDirectory(CString strFloderdName)。 //刪除主文件夾 (data) void delMainDirectory()。 //制作主文件夾 void MakeMainDirectory()。 //判斷 strIntDigit 是否為整數(shù),是否小于 intBig BOOL CheckIntDigit(CString strIntDigit,int intBig)。 //判斷 strFileName 是否可以做文件夾或文件的名字 BOOL CheckFileName(CString strFileName)。 //判斷 strText 是否為空 BOOL CheckEmpty(CString strText)。 //刪除 strFloderName 文件夾下名為 strFileName 的文件 void delFile(CString strFloderName,CString strFileName)。 //得到 strFloderName 文件夾下名為 strFileName 的文件路徑 CString GetFileName(CString strFolderName,CString strFileName)。 //制作 strFloderName 文件夾下名為 strFileName 的文件 CString MakeFile(CString strFloderName,BOOL blnMake)。 //顯示文件夾對(duì)話框 BOOL GetFolder(CString* strSelectedFolder,const char* lpszTitle,const HWND hwndOwner,const char* strRootFolder,const char* strStartFolder)。 系統(tǒng)程序中主要用到了 CFileOperate 類中的 GetAppPath 函數(shù)。GetAppPath 函數(shù)用于獲取當(dāng)前運(yùn)行程序所在文件夾的路徑,其實(shí)現(xiàn)代碼如下。 CString CFileOperate::GetAppPath()//取得當(dāng)前運(yùn)行程序所在文件夾路徑 { char lpFileName[MAX_PATH]。//路徑數(shù)組 //獲取當(dāng)前運(yùn)行程序的全路徑 GetModuleFileName(AfxGetInstanceHandle(),lpFileName,MAX_PATH)。 CString strFileName = lpFileName。 //從字符串的最右邊向左搜索 39。\\39。串 int nIndex = (39。\\39。)。 CString strPath。 if (nIndex 0) strPath = (nIndex)。//取 39。\\39。串左邊字符 else strPath = 。 return strPath。//返回前運(yùn)行程序的文件夾路徑 29 } 時(shí)間格式轉(zhuǎn)換類 CMyTime 系統(tǒng)開發(fā)中,需要頻繁的對(duì)日期、時(shí)間數(shù)據(jù)進(jìn)行操作,因此這里設(shè)計(jì)了類 CMyTime,實(shí)現(xiàn)簡(jiǎn)單的時(shí)間日期轉(zhuǎn)換, CMyTime 類的聲明如下。 class CMyTime { public: CTime ValueTime。//CTime 類型的值 //blnChinese:TRUE年月日時(shí)分秒 FALSE: CString GetAllString(BOOL blnChinese)。 //返回字符串形式的日期時(shí)間 //blnChinese:TRUE年月日 FALSE CString GetDateString(BOOL blnChinese)。//返回字符串形式的日期 //blnChinese:TRUE時(shí)分秒 FALSE: CString GetTimeString(BOOL blnChinese)。//返回字符串形式的時(shí)間 CString GetSimpleString()。//返回簡(jiǎn)單字符串形式的日期時(shí)間 CString GetWeek()。//返回星期 星期日 //設(shè)置字符串形式的值 //blnSimple:TRUE(%Y%m%d%H%M%S) FALSE(年月日時(shí)分秒或 :) void SetAllString(CString Value,BOOL blnSimple)。 void SetNow()。//設(shè)置成現(xiàn)在時(shí)間 CMyTime()。//構(gòu)造函數(shù) }。 SetNow 函數(shù)獲取當(dāng)前日期,時(shí)間,將其值賦予 ValueTime。 void CMyTime::SetNow() { ValueTime=CTime::GetCurrentTime()。 } 數(shù)據(jù)操作類 CADOConn 系統(tǒng)開發(fā)了數(shù)據(jù)操作類 CADOConn,它是本系統(tǒng)的核心,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的基本操作功能, CADOConn 類的聲明代碼如下。 import c:\program files\mon files\system\ado\ \ no_namespace rename (EOF, adoEOF) 30 class CADOConn { // 定義變量 public: _ConnectionPtr m_pConnection。//指向 Connection 對(duì)象指針 : //添加一個(gè)指向 Recordset 對(duì)象的指針 : _RecordsetPtr m_pRecordset。 _bstr_t m_strData。 int m_DataType。 CADOConn(int DataType)。//構(gòu)造函數(shù) CADOConn()。 virtual ~CADOConn()。 void OnInitCADOConn()。//初始化連接數(shù)據(jù)庫(kù) _RecordsetPtramp。 GetRecordSet(CString strSQL)。//執(zhí)行查詢 BOOL ExecuteSQL(CString strSQL)。//執(zhí)行 SQL 語(yǔ)句, Insert Update delete void ExitConnect()。//退出連接 BOOL MoveFirst()。//字段集移向開頭 BOOL MoveNext()。//字段集向下移 BOOL Open(CString strSQL)。//打開記錄集 BOOL OpenLogo(CString strSQL)。//打開記錄集 CString GetValueString(int index,int strSum)。//返回記錄集中某字段的字符串 byte GetValueByte(int index)。//返回記錄集中某字段的字節(jié) int GetValueInt(int index)。//返回記錄集中某字段的短整數(shù) double GetValueDouble(int index)。//返回記錄集中某字段的雙精度數(shù) float GetValueFloat(int index)。//返回記錄集中某字段的單精度數(shù) long GetValueLong(int index)。//返回記錄集中某字段的長(zhǎng)整型數(shù) CTime GetValueDate(int index)。//返回記錄集中某字段的日期時(shí)間 //獲取記錄集某字段的 BYTE 值,并換為 CString返回 CString GetValueByteStr(int index,int strSum)。 //獲取記錄集某字段的 INT 值,并換為 CString返回 CString GetValueIntStr(int index,int strSum)。 //獲取記錄集某字段的 Double 值,并換 為 CString返回 CString GetValueDoubleStr(int index,int strLSum,int strRSum)。 //獲取記錄集某字段的 Float 值,并換為 CString返回 CString GetValueFloatStr(int index,int strLSum,int strRSum)。 //獲取記錄集某字段的 Long值,并換為 CString返回 CString GetValueLongStr(int index,int strSum)。 //獲取記錄集某 字段的 CTime 值,并換為 CString返回 CString GetValueDateStr(int index,CString strType)。 //添加單項(xiàng)數(shù)據(jù) BOOL AddItem(CString strTable,int strSum,LPCTSTR pszText, ... )。 //得到字段中數(shù)據(jù)的類型 int GetValueType(int index)。 BOOL adoEOF()。//記錄集的結(jié)束判斷 31 BOOL FillList(CListCtrl *listMain,int ColOpenEnd)。//填充列表 (ColOpenEnd 代表展開多少列 ) BOOL InitList(CListCtrl *listMain,int colSum)。//初始化列表 CString GetAppPath()。//得到應(yīng)用程序所在的文件夾 BOOL FillList(
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1