亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3638 | 回復(fù): 0
打印 上一主題 下一主題

MySql規(guī)范(轉(zhuǎn)) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-02-22 19:09 |只看該作者 |倒序瀏覽

引用
雨桐

MySql規(guī)范(轉(zhuǎn))
1.數(shù)據(jù)庫表及字段命名、設(shè)計規(guī)范
1.1數(shù)據(jù)庫表數(shù)據(jù)庫表的命名規(guī)范:
表的前綴應(yīng)該用系統(tǒng)或模塊的英文名的縮寫(全部大寫或首字母大寫)。如果系統(tǒng)功能簡單,沒有劃分為模塊,則可以以系統(tǒng)英文名稱的縮寫作為前綴,否則以各模塊的英文名稱縮寫作為前綴。例如:如果有一個模塊叫做BBS(縮寫為BBS),那么你的數(shù)據(jù)庫中的所有對象的名稱都要加上這個前綴:BBS_ + 數(shù)據(jù)庫對象名稱,BBS_CustomerInfo標(biāo)示論壇模塊中的客戶信息表
表的名稱必須是易于理解,能表達(dá)表的功能的英文單詞或縮寫英文單詞,無論是完整英文單詞還是縮寫英文單詞,單詞首字母必須大寫。如果當(dāng)前表可用一個英文單詞表示的,請用完整的英文單詞來表示;例如:系統(tǒng)資料中的客戶表的表名可命名為:SYS_Customer。如果當(dāng)前表需用兩個或兩個以上的單詞來表示時,盡量以完整形式書寫,如太長可采用兩個英文單詞的縮寫形式;例如:系統(tǒng)資料中的客戶物料表可命名為:SYS_CustItem。
表名稱不應(yīng)該取得太長(一般不超過三個英文單詞)。
在命名表時,用單數(shù)形式表示名稱。例如,使用 Employee,而不是 Employees。
對于有主明細(xì)的表來說。明細(xì)表的名稱為:主表的名稱 + 字符Dts。例如:采購定單的名稱為:PO_Order,則采購定單的明細(xì)表為:PO_OrderDts
對于有主明細(xì)的表來說,明細(xì)表必須包含兩個字段:主表關(guān)鍵字、SN,SN字段的類型為int型,目的為與主表關(guān)鍵字聯(lián)合組成明細(xì)表的關(guān)鍵字,以及標(biāo)示明細(xì)記錄的先后順序,如1,2,3……。
表必須填寫描述信息
后臺表名盡量與前臺表名相同,后臺獨有的表應(yīng)以_b作為后綴。如r_gggd_b
1.2表字段
命名規(guī)范   
數(shù)據(jù)庫字段的命名必須遵循以下規(guī)范:
采用有意義的字段名。字段的名稱必須是易于理解,能表達(dá)字段功能的英文單詞或縮寫英文單詞,單詞首字母必須大寫,一般不超過三個英文單詞。例如:人員信息表中的電話號碼可命名為:Telephone或Tel。產(chǎn)品明細(xì)表中的產(chǎn)品名稱可用ProductName表示。(推薦一般用完整的英文單詞)。
系統(tǒng)中所有屬于內(nèi)碼字段(僅用于標(biāo)示唯一性和程序內(nèi)部用到的標(biāo)示性字段),名稱取為:“ID”,采用整型或長整型數(shù),具體根據(jù)可能的數(shù)據(jù)量確定,增加記錄時取最大值加1,該字段通常為主關(guān)鍵字。
系統(tǒng)中屬于是業(yè)務(wù)范圍內(nèi)的編號的字段,其代表一定的業(yè)務(wù)信息,比如資料信息和單據(jù)的編號,這樣的字段建議命名為:“Code”,其數(shù)據(jù)類型為varchar,該字段需加唯一索引。
在命名表的列時,不要重復(fù)表的名稱;例如,在名為 Employee 的表中避免使用名為 EmployeeLastName 的字段。
不要在列的名稱中包含數(shù)據(jù)類型。
設(shè)計規(guī)范
所有字段在設(shè)計時,除以下數(shù)據(jù)類型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必須有默認(rèn)值。字符型的默認(rèn)值為一個空字符值串’’;數(shù)值型的默認(rèn)值為數(shù)值0;邏輯型的默認(rèn)值為數(shù)值0;
其中:系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”;數(shù)值1表示為“真”。
datetime、smalldatetime類型的字段沒有默認(rèn)值,必須為NULL。
當(dāng)字段定義為字符串形時建議使用varchar而不用nvarchar。
建議在大多數(shù)表中(如報銷單,申請單),應(yīng)都有以下字段:
字段名說明類型默認(rèn)值
CreatorID創(chuàng)建者int0
CreatedTime創(chuàng)建時間DatetimeNULL
字段的描述
數(shù)據(jù)庫中每個字段的描述(Description)如下:
盡量遵守第三范式的標(biāo)準(zhǔn)(3NF)。
表內(nèi)的每一個值只能被表達(dá)一次
表內(nèi)的每一行都應(yīng)當(dāng)被唯一的標(biāo)示
表內(nèi)不應(yīng)該存儲依賴于其他鍵的非鍵信息
如果字段事實上是與其它表的關(guān)鍵字相關(guān)聯(lián)而未設(shè)計為外鍵引用,需建索引。
如果字段與其它表的字段相關(guān)聯(lián),需建索引。
如果字段需做模糊查詢之外的條件查詢,需建索引。
除了主關(guān)鍵字允許建立簇索引外,其它字段所建索引必須為非簇索引。
字段必須填寫描述信息
2存貯過程命名及設(shè)計規(guī)范
2.1命名規(guī)范
存貯過程的命名請遵循以下命名規(guī)范:USP _ + 系統(tǒng)模塊縮寫(與表前綴類似)+_ + 功能標(biāo)識 + 代表存貯過程操作的主要表名(不帶前綴)或功能的英文單詞或英文單詞縮寫。
如果一個存貯過程只對一個表進(jìn)行操作,建議存貯過程的名稱就用存貯過程所操作的表的表名(不帶前綴)。這樣有利于根據(jù)表名找到相應(yīng)的存貯過程。
為了在眾多的存貯過程中能很快的找到并維護存貯過程,我們按存貯過程的作用將系統(tǒng)的存貯過程
進(jìn)行以下的分類及命名:(以下示例假設(shè)存貯過程所在的模塊名為ORG)
作用第一前綴第二前綴名
(功能標(biāo)識)示例
用于新增的存貯過程USP_ORGAddUSP_ORG_Add_Employee
用于修改的存貯過程USP_ORGUptUSP _ORG_Upt_Employee
用于刪除的存貯過程USP_ORGDelUSP _ORG_Del_Employee
用于單據(jù)查詢的存貯過程USP_ORGQryUSP _ORG_Qry_Employee
用于報表統(tǒng)計的存貯過程USP_ORGRptUSP _ORG_Rpt_GetEmployee
用于一些特殊過程處理的存貯過程USP_ORGOthUSP _ORG_Oth_SetSystemMessage
如果系統(tǒng)中的存貯過程只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為:USP + 所屬的級次 + _ + 后面的部分
例如:
1.USP1_ORG_Add_Subject        (沒有調(diào)用其它存貯過程)
2.USP2_ORG_Upt_Subject       (調(diào)用了第1級的存貯過程)
3.USP3_ORG_Qry_Subject       (調(diào)用了第2級的存貯過程)
2.2設(shè)計規(guī)范
在存貯過程中必須說明以下內(nèi)容:
目的:說明此存貯過程的作用。
作者:首次創(chuàng)建此存貯過程的人的姓名。在此請使用中文全名,不允許使用英文簡稱。
創(chuàng)建日期:創(chuàng)建存貯過程時的日期。
修改記錄:
修改記錄需包含修改順序號、修改者、修改日期、修改原因,修改時不能直接在原來的代碼上修改,也不能刪除原來的代碼,只能先將原來的代碼注釋掉,再重新增加正確的代碼。修改順序號的形式為:log1,log2,log3。。。,根據(jù)修改次數(shù)順序增加,同時在注釋掉的原來的代碼塊和新增的正確代碼塊前后注明修改順序號。
對存貯過程各參數(shù)及變量的中文注解。
示例如下:
/*
目的:根據(jù)部門與物料和會計區(qū)間查詢生產(chǎn)現(xiàn)場領(lǐng)料匯總報表
作者:李奇
創(chuàng)建日期:2002-12-11
*/
/*
修改順序號:log1
修改者:劉敏
修改日期:2002.12.22
修改原因:(具體原因詳細(xì)描述)
*/
CREATE PROCEDURE [dbo].[USP_GetLMSSum]
@ProductionType int=1, --生產(chǎn)類型(1-自制;0-委外加工)
@DeptID int=0,     --生產(chǎn)部門
@ItemID int=0,     --物料
@StartDate datetime='2002-11-26',--會計區(qū)間開始日期
@EndDate datetime='2002-12-25'--會計區(qū)間截止日期
AS
/*
log1 old
--自制領(lǐng)料
INSERT INTO #LMSDts
SELECT dbo.iStockBill.DeptID, dbo.fDept.DeptName,
   dbo.mLMS.ItemID AS ItemInterID, dbo.fItem.ItemID, dbo.fItem.ItemName,
   ISNULL(dbo.fItem.Model, N'') AS Model, ISNULL(dbo.fUnit.UnitName, N'')
   AS UnitName, dbo.mLMS.Qty, dbo.mLMS.TransType, dbo.mWO.OrderType,
   dbo.mLMS.CreateTime
end log1 old
*/
--log1 new
--自制領(lǐng)料
INSERT INTO #LMSDts
SELECT dbo.iStockBill.DeptID, dbo.fDept.DeptName,
   dbo.mLMS.ItemID AS ItemInterID, dbo.fItem.ItemID, dbo.fItem.ItemName,
   ISNULL(dbo.fItem.Model, N'') AS Model, ISNULL(dbo.fUnit.UnitName, N'')
   AS UnitName, dbo.mLMS.Qty, dbo.mLMS.TransType, dbo.mWO.OrderType,
   dbo.mLMS.CreateTime
--end log1 new
3 視圖命名規(guī)范
3.1命名規(guī)范
視圖的命名請遵循以下命名規(guī)范:UV _ + 系統(tǒng)模塊縮寫(與表前綴類似)+_ + 功能標(biāo)識 + 代表視圖查詢的主要表名(不帶前綴)或功能的英文單詞或英文單詞縮寫。
如果一個視圖只對一個表進(jìn)行查詢,建議視圖的名稱就用視圖所查詢的表的表名(不帶前綴)。這樣有利于根據(jù)表名找到相應(yīng)的視圖。
為了在眾多的視圖中能很快的找到并維護視圖,我們按其作用將系統(tǒng)的視圖
進(jìn)行以下的分類及命名:(以下示例假設(shè)視圖所在的模塊名為ORG)
作用第一前綴第二前綴名
(功能標(biāo)識)示例
用于單據(jù)查詢的視圖UV_ORGQryUV_ORG_Qry_Employee
用于報表統(tǒng)計的視圖UV_ORGRptUV_ORG_Rpt_GetEmployee
用于一些特殊過程處理的視圖UV_ORGOthUV_ORG_Oth_SetSystemMessage
如果系統(tǒng)中的視圖只有一級,則遵照以上規(guī)則命名,如果存在多級,則需要區(qū)分其屬于哪一級,具體為:UV + 所屬的級次 + _ + 后面的部分
例如:
UV1_ORG_Add_Subject        (沒有調(diào)用其它視圖)
UV2_ORG_Upt_Subject       (調(diào)用了第1級的視圖)
UV3_ORG_Qry_Subject       (調(diào)用了第2級的視圖)
3.2 設(shè)計規(guī)范
在視圖中必須說明以下內(nèi)容:
目的:說明此視圖的作用。
創(chuàng)建者:首次創(chuàng)建此視圖的人的姓名。在此請使用中文全名,不允許使用英文簡稱。
修改者、修改日期、修改原因:如果有人對此視圖進(jìn)行了修改,則必須在此視圖的前面加注修改者姓名、修改日期及修改原因。
對視圖各參數(shù)及變量的中文注解。
示例如下:
/*
目的:查詢本月所要培訓(xùn)的科目
創(chuàng)建:加菲貓
時間:2001-3-3
修改者:Dyan 修改日期:2002-12-11   
修改原因及內(nèi)容:學(xué)員不需要培訓(xùn),將不需要培訓(xùn)的課程去掉。
修改者:周明 修改日期:2002-4-2   
修改原因及內(nèi)容:增加一門新課程
*/
CREATE VIEW dbo.USP_AddSubject
AS
SELECT SubjectIId AS 課程編號
FROM dbo.ZfLocaleDecide
3.3 存儲過程和事務(wù)處理
如果事務(wù)處理在存儲過程返回時的嵌套層次與執(zhí)行時的層次不同,SQL Server會顯示信息提示事務(wù)處理嵌套失控。因為存儲過程并不異常終止該批處理,在執(zhí)行和確認(rèn)隨后的語句時,過程內(nèi)的rollback tran 會導(dǎo)致數(shù)據(jù)完整性損失。
在編寫存儲過程時,應(yīng)遵守以下原則:
1.過程對@@trancount應(yīng)無凈改變。
2.僅當(dāng)存儲過程發(fā)出begin tran語句時,才發(fā)出rollback tran。
3.4 其他注意事項
存儲過程應(yīng)該堅實可靠的,因為它們是駐留在服務(wù)器中,被頻繁使用的。應(yīng)仔細(xì)檢查參數(shù)的有效性,并在有問題時返回出錯信息。應(yīng)確保參數(shù)的數(shù)據(jù)類型和被比較的欄的數(shù)據(jù)類型匹配,從而避免數(shù)據(jù)類型匹配錯誤。在每個SQL語句之后要檢查@@error。
4觸發(fā)器編碼規(guī)范
4.1命名規(guī)范
觸發(fā)器名為相應(yīng)的表名加上后綴
Insert觸發(fā)器加'_i',Delete觸發(fā)器加'_d',Update觸發(fā)器加'_u',如:r_bch_i,r_bch_d,r_bch_u。
4.2 設(shè)計規(guī)范
在觸發(fā)器中必須說明以下內(nèi)容:
目的:說明此觸發(fā)器的作用。
創(chuàng)建者:首次創(chuàng)建人的姓名。在此請使用中文全名,不允許使用英文簡稱。
修改者、修改日期、修改原因:如果有人對此視圖進(jìn)行了修改,則必須在此視圖的前面加注修改者姓名、修改日期及修改原因。
對其中各參數(shù)及變量的中文注解。
4.3范例
下面通過一個例子,說明觸發(fā)器編程中應(yīng)遵守的規(guī)范:
/* delete related r_a according to deleted table */
CREATE TRIGGER r_a_d ON r_a
   FOR DELETE
AS
IF @@ROWCOUNT = 0 -no rows deleted
      RETURN
/* delete r_b table related to deleted table */
DELETE r_b
      FROM r_b b, deleted d
      WHERE b.id=d.id
IF @@ERROR != 0
BEGIN
      RAISERROR("Error occurred deleting related records", 16, 1)
      ROLLBACK TRAN
END
RETURN
作以下幾點說明:
1.檢查是否有行被修改。注意:不論數(shù)據(jù)是否被修改,觸發(fā)器都會引發(fā),執(zhí)行情況取決于T-SQL語句的執(zhí)行,而和任何潛在的where子句是否執(zhí)行無關(guān)。
2.因為被刪除行在該表中不再可用,所以應(yīng)在被刪除的表中查看。
3.檢查T-SQL語句的返回代碼,以捕獲任何出錯條件。
4.4 事務(wù)過程中的觸發(fā)器
1.觸發(fā)器內(nèi)的rollback將所有工作返回至最外層的begin tran,完成觸發(fā)器內(nèi)的處理并異常終止當(dāng)前的批處理。
2.不可以從觸發(fā)器內(nèi)部返回至某個已命名的事務(wù)過程,這將產(chǎn)生運行錯誤,掛起所有工作并終止批處理。
5 SQL語言編碼規(guī)范
5.1所有關(guān)鍵字必須大寫。
如:INSERT、UPDATE、DELETE、SELECT及其子句。
IF……ELSE、CASE、DECLARE等。
所有函數(shù)及其參數(shù)中除用戶變量以外的部分必須大寫。
在定義變量時用到的數(shù)據(jù)類型必須小寫。
所有關(guān)鍵字必須大寫
5.2注釋
注釋可以包含在批處理中。在觸發(fā)器、存儲過程中包含描述性注釋將大大增加文本的可讀性和可維護性。本規(guī)范建議:
1、注釋以英文為主。
實際應(yīng)用中,發(fā)現(xiàn)以中文注釋的SQL語句版本在英文環(huán)境中不可用。為避免后續(xù)版本執(zhí)行過程中發(fā)生某些異常錯誤,建議使用英文注釋。
2、注釋盡可能詳細(xì)、全面。
創(chuàng)建每一數(shù)據(jù)對象前,應(yīng)具體描述該對象的功能和用途。
傳入?yún)?shù)的含義應(yīng)該有所說明。如果取值范圍確定,也應(yīng)該一并說明。取值有特定含義的變量(如boolean類型變量),應(yīng)給出每個值的含義。
3、注釋語法包含兩種情況:單行注釋、多行注釋
單行注釋:注釋前有兩個連字符(--),最后以行尾序列(CR-LF)結(jié)束。一般,對變量、條件子句可以采用該類注釋。
多行注釋:符號/*和*/之間的內(nèi)容為注釋內(nèi)容。對某項完整的操作建議使用該類注釋。
4、注釋簡潔,同時應(yīng)描述清晰。
5函數(shù)注釋:
編寫函數(shù)文本--如觸發(fā)器、存儲過程以及其他數(shù)據(jù)對象--時,必須為每個函數(shù)增加適當(dāng)注釋。該注釋以多行注釋為主,主要結(jié)構(gòu)如下:
/************************************************************************
*name        :             --函數(shù)名
*function :             --函數(shù)功能
*input    :             --輸入?yún)?shù)
*output    :             --輸出參數(shù)
*author    :             --作者
*CreateDate   :          --創(chuàng)建時間
*UpdateDate   :             --函數(shù)更改信息(包括作者、時間、更改內(nèi)容等)
*************************************************************************/
CREATE PROCEDURE sp_xxx
5.3條件執(zhí)行語句if…else
條件語句塊(statenemt block,以 begin…end為邊界)僅在if子句的條件為真時才被執(zhí)行。
為提高代碼的可讀性,建議嵌套不多于5層。還有,當(dāng)嵌套層次太多時,應(yīng)該考慮是否可以使用case語句。
5.4重復(fù)執(zhí)行while和跳轉(zhuǎn)語句goto
需要多次執(zhí)行的語句,可以使用while結(jié)構(gòu)。其中,控制while循環(huán)的條件在任何處理開始之前需要先執(zhí)行一次。循環(huán)體中的保留字break無條件的退出while循環(huán),然后繼續(xù)處理后續(xù)語句;保留字continue重新計算while條件,如果條件為真,則從循環(huán)開始處重新執(zhí)行各語句。
使用跳轉(zhuǎn)語句goto和標(biāo)簽label也可以方便地實現(xiàn)循環(huán)和其他更靈活的操作。SQL SERVER僅具有單通道語法分析器,因此不能解析對尚未創(chuàng)建的對象所做的前向參考。換言之,跳轉(zhuǎn)到某標(biāo)簽的后續(xù)語句應(yīng)該是可執(zhí)行的(如不存在可能尚未創(chuàng)建的數(shù)據(jù)對象)。
5.5書寫格式
數(shù)據(jù)庫服務(wù)器端的觸發(fā)器和存儲過程是一類特殊的文本,為方便開發(fā)和維護,提高代碼的易讀性和可維護性。規(guī)范建議按照分級縮進(jìn)格式編寫該文本。
順序執(zhí)行的各命令位于同一級;條件語句塊(statenemt block,以 begin…end為邊界)位于下一級,類推。
SQL語句是該文本的主體。為適應(yīng)某些教復(fù)雜的用戶需求,SQL語句可能比較龐大。為方便閱讀和維護,規(guī)范建議按照SQL語句中系統(tǒng)保留字的關(guān)鍵程度再劃分為三級。具體分級請參照下表。其中,非系統(tǒng)保留字(如字段名、數(shù)據(jù)表名、標(biāo)點符號)相對本級保留字再縮進(jìn)一級。多個連續(xù)的非保留字可以分行書寫,也可以寫在同一行。當(dāng)WHERE包含的條件子句教復(fù)雜時,應(yīng)該每行只寫一個條件分句,并為重要的條件字句填寫單行注釋。
在保證基本縮進(jìn)格式的前提下,可以通過對齊某些重要關(guān)鍵字(如條件關(guān)鍵字AND、OR,符號 = 、  等)來進(jìn)一步提高文本的易讀性和可維護性。
相鄰兩級的縮進(jìn)量為10個空格。這也是ISQL編輯器默認(rèn)的文本縮進(jìn)量。另外,在ISQL編輯器中,一個TAB鍵也相當(dāng)于10個空格。
6數(shù)據(jù)對象的國際化
6.1關(guān)于數(shù)據(jù)對象的命名
數(shù)據(jù)對象和變量的命名一律采用英文字符。禁止使用中文命名。其他命名注意事項和規(guī)范請參考2命名規(guī)則。
6.2關(guān)于RAISERROR
SQL SERVER 系統(tǒng)的RAISERROR命令能夠把某個出錯情況返回給調(diào)用過程,這對說明調(diào)用過程的執(zhí)行情況很有必要;同時可以部分避免客戶端的冗余操作。另外,結(jié)合系統(tǒng)存儲過程sp_addmessage和sp_dropmessage可以方便實現(xiàn)數(shù)據(jù)對象在SQL SERVER端的國際化。
SQL SERVER的MASTER數(shù)據(jù)庫中有錯誤信息數(shù)據(jù)表sysmessages,專門用于存儲系統(tǒng)和用戶的錯誤提示及相關(guān)信息(如錯誤ID號、錯誤等級、狀態(tài))。用戶可以調(diào)用sp_addmessage和sp_dropmessage預(yù)先將各類錯誤信息記入該數(shù)據(jù)表。其中,不同的錯誤信息用錯誤ID號區(qū)分。在編寫存儲過程代碼時,調(diào)用RAISERROR函數(shù)從錯誤信息表sysmessages中引用相關(guān)錯誤ID號的錯誤信息。
由于0~50000的值是保留為 SQL SERVER使用的,所以用戶自定義錯誤信息的錯誤ID號必須大于50000。
RAISERROR的語法如下:
RAISERROR ({msg_id | msg_str}, severity, state )
本規(guī)范建議存儲過程以RAISERROR和RETURN返回。
舉例如下:
l第一步:生成該錯誤信息
/*insert a error message into the master..sysmessages*/
sp_addMessage 50001 ,16 ,'Can"t update the primary key from table %s'
l第二步:執(zhí)行存儲過程sp_xxx,異常返回時引用上述錯誤信息
CREATE PROCEDURE sp_xxx
BEGIN

RAISERROR(50001 ,16 ,1 ,'r_a') -- Can"t update the primary key from table r_a
ROLLBACK TRAN
RETURN(1)
END
l第三步:在DELPHI調(diào)用中,通過EDBEngineError捕捉該錯誤
   try
sp_test.execProc ;
   except
   on e :EDBEngineError
if e.errors[1].errorcode = 13059 then
    /*hint 'Can"t update the primary key from table r_a'*/
    showMessage(e.errors[1].message)
   end ;
l第四步:當(dāng)不再使用該錯誤信息時,應(yīng)該從錯誤信息表中刪除相應(yīng)數(shù)據(jù)
sp_dropMessage 50001
l第五步:錯誤提示信息國際化
用相應(yīng)語言替換master..sysmessages表中用戶自定義的錯誤消息即可。


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/111930/showart_2184125.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP