Tự học lập trình cơ sở dữ liệu với Visual Basic 5 trong 21 ngày ấn phẩm 2



tải về 0.58 Mb.
trang6/13
Chuyển đổi dữ liệu26.04.2018
Kích0.58 Mb.
#37160
1   2   3   4   5   6   7   8   9   ...   13

Tạo những cơ sở dữ liệu

Trong bài học ngày hôm nay, bạn học một định nghĩa của một quan hệ cơ sở dữ liệu, những yếu tố cơ bản tốt nhất của một cơ sở dữ liệu, bao gồm bảng dữ liệu, bản ghi dữ liệu và trường dữ liệu. Bạn cũng có thể học thiết lập và bảo trì những quan hệ dữ liệu quan trọng. Đây là một vài yếu tố để phát triển những cơ sở dữ liệu chất lượng các ứng dụng của bạn.


Bạn cũng được học những kiểu trường cơ sở dữ liệu của Visual Basic, bao gồm tên kích cỡ lưu trữ và những sử dụng thông thưỡng của chúng. Theo cách này, bạn tạo một đề án thăm dò những hạn chế, những khả năng, những sử dụng thông thường những kiểu trường cơ sở dữ liệu Visual Basic.
Những cơ sở dữ liệu quan hệ :
Trước khi tìm kiếm những thành phần riêng lẻ của cơ sở dữ liệu quan hệ, đầu tiên chúng ta xác định một định nghĩa đơn giản. Đối với mục đích của quyển sách này, một cơ sở dữ liệu quan hệ là định nghĩa một tập dữ liệu đó chỉ ra mối quan hệ giữa những yếu tố dữ liệu ; [ hoặc dùng nó ngay trực tiếp ].Một quan hệ cơ sở dữ liệu là một tập của quan hệ dữ liệu.
Trong nội quy, để xây dựng một tập dữ liệu quan hệ,bạn cần ba khoá. Những cái koá này là ( từ nhỏ nhất đến lớn nhất ) :

+ Những trường dữ liệu – Data fields ( Thỉnh thoảng gọi là cột dữ liệu).

+ Những bản ghi dữ liệu – Data records( được hiểu như hàng dữ liệu ).

+ Những bảng dữ liệu – Data tables.


Chúng ta hãy xem những yếu tố này sâu hơn.
Những trường dữ lệu – Data fields :
Khối xây dựng đầu tiên trong một cơ sở dữ liệu quan hệ là trường dữ liệu. Trường dữ liệu bao gồm yếu tố nhỏ nhất của dữ liệu đó bạn có thể lưu trong một cơ sở dữ liệu và mỗi trường chỉ bao gồm một yếu tố dữ liệu. Cho ví dụ, nếu bạn muốn chứa tên của một khách hàng, bạn phải tạo một trường dữ liệu đâu đó trong cơ sở dữ liệu và cũng cho trường đó một tên, ví dụ như CustomerName. nếu bạn muốn lưu một tài khoản của một khách hàng, bạn phải tapọ một trường khác, có lẽ gọi nó là AccountBalance. Tất cả các trường bạn tạo được lưu trong một cơ sở dữ liệu đơn ( xem hình 2.1 ).


Hình 2.1





Chú ý : Trong lý thuyết cơ sở dữ liệu chính thức, một trường thường được xem như một cột. Trong suốt quyển sách này, những cách diễn đạt trường dữ liệu và cột dữ liệu được sử dụng thay cho nhau.

Dẫu cho nó có thể lưu nhiều hơn một yếu tố dữ liệu trong một trường đơn ( ví dụ như họ, và tên ), nó không là một cơ sở dữ liệu tốt để làm. Trong thực tế, việc lưu trữ hơn một yếu tố dữ liệu trong một trường có thể dẫn đến nhiều vấn đề khi bạn hoặc người sử dụng khác cố gắng lấy và cập nhật dữ liệu.
Khái niệm này xem như đơn giản trong lý thuyết. Nhưng nó không dễ dàng trong thực tiễn. Trường CustomerName được bàn luận gần đây là một ví dụ tốt. Cho rằng bạn có một cơ sở dữ liệu bao gồm một danh sách những tên khách hàng của bạn, và bạn cần sắp xếp danh sách bằng họ ( last name ). Cái này sẽ được làm như thế nào ? Bạn có thể cho rằng môi trường dữ liệu CustomerName bao gồm một last name ? Một vài chỉ chứa một first name ? Có thể có một vài chứa cả hai first và last name –nhưng trong thứ tự gì ( last name, first name hay first name, last name) ? Khi bạn nhìn trạng thái này, bạn phát hiện ra rằng bạn thực sự lưu hai yếu tố dữ liệu trong trường CustomerName ( first name và last name ). Đối với lý do này, nhiều cơ sở dữ liệu không chỉ bao gồm trường dữ liệu CustomerName, nhưng những trường dữ liệu LastName và FirstName.
Khi bạn bắt đầu xây dựng cơ sở dữ liệu của bạn, hãy bỏ chút thời gian nghĩ về những cách không giống nhau ( và những người sử dụng của bạn ) cần lấy ra dữ liệu hữu ích. Chất lượng và sự hữu ích của cơ sở dữ liệu của bạn được nhìn nguyên vẹn của yếu tố nhỏ nhất của nó –trường dữ liệu.
Những bản ghi dữ liệu – Data records :
Những bản ghi là một tập các trường quan hệ. Để sử dụng ví dụ bắt đầu gần đây nhất, Một Customer Record có thể chứa LastName, FirstName, và AccountBalance. Tất cả ba trường mô tả một khách hàng trong cơ sở dữ liệu.


Chú ý : Trong lý thuyết cơ sở dữ liệu chính thức xem một bản ghi như một hàng. Cả hai bản ghi và hàng được sử dụng thay cho nhau trong suốt quyển sách này.

Một bản ghi chỉ chứa một sao chép của mỗi trường đã chỉ rõ. Cho ví dụ, một bản ghi không thể chứa hơn một trường LastName. Hình 2.2 đưa ra Company Database với một Customer Record đã định nghĩa. Customer Record ( row ) chứa ba trường ( columns).


Hình 2.2

Bảng dữ liệu các hàng và các cột
Bằng cách kết hợp các trường và các bản ghi, bạn tạo hầu hết các yếu tố thông thường của cơ sở dữ liệu quan hệ –bảng dữ liệu. Cái yếu tố này chữa các bản ghi và mỗi bản ghi chứa các trường ( xem hình 2.3 ).


Hình 2.3


Chính mỗi bản ghi chứa các trường dữ liệu ( LastName, FirstName,và AccountBalance ), mỗi bảng chứa các bản ghi quan hệ. Các bảng có đầy đủ các tên có ý nghĩa ( Customer Table hoặc Invoice Table ), trong cách giống nhau đó các trường có đầy đủ các tên có ý nghĩa ( LastName, FirstName,AccountBalance và vân vân ). Những cái tên này giúp bạn và người khác nhớ nội dung của các yếu tố ( các yếu tố bảng và trừơng ).


Các quan hệ cơ sở dữ liệu
Chính một bản ghi có thể chứa các trường quan hệ riêng rẽ, một cơ sở dữ liệu có thể chứa các bảng khác nhau. Việc sử dụng các mỗt quan hệ là một cách rất có hiệu lực để lưu mớ dữ liệu phức tạp. Cho ví dụ, một bảng lưu các tên khách hàng có thể được quan hệ đến bảng khác đang lưu các thông tin của các tên khách hàng có mua. cái nào có thể được quan hệ trong việc tác động đến một bảng lưu tất cả các thông tin của các tên bạn phải mua. Bằng cách thiết lập các mối quan hệ có nghĩa giữa các bảng.bạn có thể tạo các cấu trúc dữ liệu mềm dẻo để dễ dàng bảo trì.
Bạn có thể thiết lập các mốt quan hệ giữa các bảng bằng cách sử dụng các con trỏ hoặc các trường có quyền trong bảng của bạn.
Bạn sử dụng các trường có quyền để trỏ đến các bản ghi trong các bảng khác đã có thông tin.Các trường có quyền thường mô tả những gì biết về các mối quan hệ giữa cái này với cái kia( 1-1). Một ví dụ tốt của mối quan hệ 1-1 là mỗi quan hệ giữa một bản ghi với một bản ghi trong bảng địa chỉ shipping.( xem hình 2.4 ).

Hình 2.4


Bạn sử dụng các trường trỏ để trỏ đến một hoặc nhiều bản ghi trong các bảng khác có các thông tin quan hệ. Các trường trỏ thường mô tả những gì biết về các mối quan hệ giữa một cái với nhiều cái ( 1-n ).Một ví dụ tốt mối quan hệ 1-n là quan hệ giữa một bản ghi chính và các thứ tự nổi bật khác nhau ( xem hình 2.5). Các mối quan hệ 1-1 được sử dụng để liên kết các bản ghi ( ví dụ như Customer Table ) đến một bản ghi quan hệ trong bảng khác.


Hình 2.5

Cho ví dụ, Cho rằng bạn có hai kiểu của khách hàng in trong Company Database của bạn : bán lẻ và bán buôn. Các khách hàng bán lẻ trả tiền trong việc mua bán, do vậy bạn cần thêm một trường Commission đến bảng Customers. Các khách hàng bán buôn, mặc dù, mua các sản phẩm của họ ở một sự chiết khấu, do vậy bạn cũng cần thêm một trường Discount đến bảng Customers. Bây giờ những người sử dụng cơ sở dữ liệu của bạn phải nhớ rằng, đối với các khách hàng Retail,trường Discount phải là trống, và đối với các khách hàng Wholesale, trường Commission phải trống. Bạn phải nhớ các quy tắc này khi thêm, xoá, sửa dữ liệu từ cơ sở dữ liệu, và tạo các báo biểu.
Bây giờ cái nãy xem như một công việc quản lý, nhưng bây giờ cố gắng thêm vào một tá hay nhiều hơn các trường, và bạn có hoàn toàn một tình trạng trên tay của bạn ! Thay vì thiết lập tất cả các trường cho tất cả các khách hàng, những gì bạn cần là một cách chỉ định nghĩa các trường bạn cần cho mỗi kiểu khách hàng.Bạn có thể làm điều này bằng cách thiết lập nhiều bảng trong một cơ sở dữ liệu đơn và sau đó thiết lập mối quan hệ giữa các bảng.
Trong ví dụ được làm sáng tỏ trong hình 2.6, bạn đã thêm một trường : Type.


Hình 2.6



Trường này có tư cách hoặc định rõ kiểu của khách hàng lưu trong bản ghi này. Bạn có thể sử dụng kiểu của thông tin này nói bạn ở đâu để tìm kiếm các thông tin thêm về khách hàng. Cho ví dụ, nếu trường Type được đặt đến Retail, do vậy bạn biết bạn có thể tìm khách hàng trong Retail Table để tìm kiếm thêm các thông tin. nếu trường Type đặt đến Wholesale, bạn có thể tìm thêm các thông tin trong Wholesale Table.
Bằng cách tạo trường RecordType bạn có thể thiết lập một mối quan hệ 1-1 giữa các bản ghi trong Customer Table và Retail, Wholesale Table. Các mối quan hệ 1-n sử dụng để liên kết các bản ghi trong một bảng chính ( ví dụ như Customer Table ) đến đa bản ghi trong các bảng khác.
Cho ví dụ bạn có thể đặt dấu của các thứ tự thông thường cho mỗi khách hàng trong cơ sở dữ liệu của bạn. Nừu bạn không tạo một cơ sở dữ liệu quan hệ, bạn có thể chắc chắn thêm một trường đến bảng khách hàng gọi Order. Cái này có thể chứa thứ tự cuối cùng đặt bởi khách hàng này. Nhưng nếu bạn cần gì để đặt dấu nhiều hơn một chỉ dẫn ? Bạn sẽ thêm hai, bốn hoặc sáu hay nhiều hơn nữa các trường phải không ? Bạn có thể nhìn thấy vấn đề.
Thay vì, bạn có thể thêm một bảng ( Order Table ) có thểe chứa nhiều các thứ tự đáng chú ý cho một khách hàng bạn cần. Sau khi bạn tạo Order Table bạn có thể thiết lập một nỗi quan hệ giữa Customer Table và Order Table sử dụng trường LastName ( xem lại hình 2.4 ). Trường LastName sử dụng như một con trỏ trong Order Table đến vị trí xác định tất cả các loại cho khách hàng này. Bạn có thể sử dụng nhiều cách khác nhau để thiết lập các mối quan hệ giữa các bảng.Chúng thường được thiết lập nhờ một trường khoá. Các trường khoá đưa ra sâu hơn trong đoạn tiếp theo.
Các trường khoá - Key fields
Thường thường, tại trường nhỏ nhất trong mỗi bảng làm nhiệm vụ như một trường khoá cho bảng.Các trường khoá trong các cơ sở dữ liệu quan hệ được sử dụng để định nghĩa và bảo trì tính toàn vẹn cuả cơ sở dữ liệu và để thiết lập các mỗi quan hệ giữa các bảng. Bạn tạo các khoá trong bảng của bạn bằng cách chỉ định một ( trường ) hoặc hơn trong bảng như một khoá chính hoặc một khoá ngoài. Một bảng có thể chỉ có một khoá chính, nhưng nó có thể có các khoá ngoài. Khoá chính dùng để điều khiển thứ tự trong dữ liệu được hển thị.Khoá ngoài sử dụng đến quan hệ các trường này đến trường khác trong ( foreign) các bảng khác trong cơ sở dữ liệu.


Chú ý : Các trường khoá thỉnh thoảng được xem như các trường chỉ số ( index) hoặc các chỉ số. Cả hai “trường khoá” và “ trường chỉ số ” được sử dụng thay cho nhau trong suốt quyển sách này.Nó quan trọng để chú ý rằng trong hầu hết cơ sở dữ liệu của PC ( Xbase, Paradox, Btreive, và... ), các chỉ số ( index ) chỉ sử dụng đến tốc độ xử lý của các tập tin lớn và chỉ đóng một vai diễn nhỏ trong sự bảo trì các mỗi quan hệ của bảng . Kiểu cơ sở dữ liệu Visual Basic ( các tập tin.mdb ) và các kiểu cơ sở dữ liệu quan hệ khác hợp lý khác sử dụng các trường khoá để thiết lập các quy tắc bảo toàn cơ sở dữ liệu tốt để tăng tốc độ tìm kiếm và phục hồi.

Như đề cập lúc bạn đầu, một bảng chỉ có thể có một khoá chính. Khoá chính được sử dụng để định nghĩa một bản ghi duy nhất trong bảng.Trong bảng Customer, trường LastName là khoá chính cho bảng.Điều này có nghĩa là không có hai bản ghi trong bảng có thể có hai giá trị giống nhau trong các trường LastName ( xem hình 2.7 ). Việc thử thêm vào hơn một bản ghi với một khoá chính giống hệt sẽ có kết quả trong một cơ sở dữ liệu lỗi.


Hình 2.7


Mẹo : Cái vai trò chính của khoá chính là duy trì toàn vẹn bên trong của một bảng. Đối với lý do này, không có hai bản ghi trong bảng có thể có khoá chính giống nhau. Nhiều công ty với nền tảng khách hàng lớn sử dụng các số Social Security hoặc mã vùng ( area code ), số điện thoại, bởi vì họ biết họ như có thêm một khách hàng với tên giống nhau. Trong những trường hợp này, SSN hoặc số điện thoại sẽ là khoá chính.

Một bảng có thể có nhiều hơn một khoá ngoài. Nó cũng có thể không có khoá ngoài. Trong bảng Order, trường LastName sẽ được định nghĩa như một khoá ngoài. Điều này có nghĩa là nó không là trường đơn trong bảng này nó trỏ đến một trường khoá trong một bảng ngoài. Việc thử thêm một bản ghi vào bảng Order đó chứa một giá trị trong trường LastName. Nó cũng không tồn tại (exist) trong trường LastName của bảng Customer, nó sẽ xảy ra trong một cơ sở dữ liệu lỗi. Bằng cách tạo các khoá ngoài trong một bảng,bạn xây dựng tính toàn vẹn dữ liệu trong cơ sở dữ liệu của bạn.




Mẹo : Vai trò chính của khoá ngoài là định nghiã và bảo vệ các mối quan hệ giữa các bảng trong một cơ sở dữ liệu. Đối với lý do này, các khoá ngoài không là chỉ có một trong bảng.




Chú ý : Tính toàn vẹn cơ sở dữ liệu và các khoá ngoài được nói kỹ hơn trong ngày16, “ Tiêu chuẩn của cơ sở dữ liệu ” và ngày 17 “ Sự quan tâm đến nhiều người dùng ”.

Bây giờ bạn đã làm việc vời hầu hết cái chung của các yếu tố cơ sở dữ liệu cơ bản, hãy nhìn các đặc trưng rõ ràng của các trường Visual Basic.


Các kiểu trường cơ sở dữ liệu của Visual Basic
Visual Basic lưu các giá trị của bảng trong các trường. Visual Basic công nhận 14 kiểu trường khác nhau, bạn có thể sử dụng để lưu các giá trị đó. Mỗi kiểu trường có đặc tính riêng rẽ điều đó làm nó đặc biệt phù hợp lưu giữ các kiểu khác nhau của dữ liệu. Một vài kiểu sử dụng lưu các hình ảnh, các kết quả cuỉa checkbox, các giá trị tiền tệ, ngày tháng lịch và các kích cỡ số khác nhau. Bảng 2.1 liệt kê 14 kiểu cơ sở dữ liệu được công nhận bởi Visual Basic.
Cột thứ nhất chứa tên kiểu trường dữ liệu. Đây là tên bạn sử dụng khi bạn tạo các bảng sử dụng Visual Data Manager từ Toolbar. Bạn học về cách sử dụng công cụ này trong ngày thứ 7, “ Việc sử dụng Visdata Program ”.
Cột thứ hai cho thấy số các byte được chiếm bởi các kiểu trường dữ liệu khác nhau. nếu cỡ trong cột là V, đó là chiều dài của biến và được xác định bỏi bạn tại thời điểm thiết kế hoặc tại thời điểm chạy chương trình.

Cột thứ ba trong bảng cho thấy kiểu dữ liệu Visual Basic tương đương. Cột này nói vứi bạn kiểu dữ liệu Visual Basic bạn có thể sử dụng cập nhật trường cơ sở dữ liệu.


Bảng 2.1 :


Data Field Type

Size

VB Type

Comments

BINARY

V

(none)

Giới hạn 255 byte

BOOLEAN

1

Boolean

Chỉ lưu 0 hoặc –1

BYTE

1

Integer

Chỉ lưu từ 0 đến 255

COUNTER

8

Long

Kiểu Long tự động tăng

CURRENCY

8

Curency




DATETIME

8

Date/Time




DUBLE

8

Double




GUID

16

(none)




INTEGER

2

Integer




LONG

8

Long




LONGBINARY

V

(none)




MEMO

V

String




SINGLE

4

Single




TEXT

V

String







Chú ý : Nó lá cái quan trọng để hiểu giữa các kiểu trường dữ liệu Visual Basic khác nhau và các kiểu dữ liệu Visual Basic. Các kiểu trường dữ liệu là được chấp nhận như các kiểu dữ liệu hợp lý. Các kiểu dữ liệu là các kiểu được công nhận bởi Visual Basic khi định nghĩa các biến trong một chương trình.Cho ví dụ, bạn có thể lưu giá trị 3 trong kiểu BYTE trong một bảng, nhưng bạn lưu giá trị như thế trong kiểu INTEGER trong một bến chương trình Visual Basic.

Tuy vậy nó vẫn đúng Visual Basic cho phép người lập trình tạo các ứng dụng cơ sở dữ liệu có thể đọc và viết dữ liệu trong vài định dạnh dữ liệu khác nhau, tất cả các định dạng cơ sở dữ liệu không chấp nhận các kiểu trường dữ liệu. Cho ví dụ, các kiểu trường dữ liệu của xBase không chấp nhận kiểu CURRENCY. Trước sự phát triển các ứng dụng cross data-engine, bạn cần hiểu chính xác các kiểu trường dữ liệu và chúng được sắp đặt như thế nào đến các định dạng dữ liệu khác nhau. Các định dạng dữ liệu khác nhau được nói sâu hơn trong ngày thứ 9, “ Visual Basic và Microsoft Jet Engine ”.


Một số trong các kiểu trong bảng 2.1 đáng thêm các chú thích :
+ LONGBINARY là cho việc lưu trữ các hình ảnh và các đối tượng OLE. Visual Basic không có kiểu dữ liệu bên trong tương ứng sắp đặt trực tiếp đến LONGBINARY. Thông tin này thường được lưu trữ như ký tự trong Visual Basic.Cho ví dụ,một ảnh bitmap sẽ được lưu trong một LONGBINARY nhưng nó sẽ được lưu như một biến xâu trong một chương trình Visual Basic. Kích đúp một trường LONGBINARY tự động dẫn chứng các tin tức ứng dụng điều đó là đăng ký đến quản lý lưu trữ đối tượng OLE.
+ Kiểu BOOOLEAN thông thường sử dụng để lwuw=u trữ kết quả của một checkbox nó chỉ lưu –1 (True) hoặc 0 ( False ). Cho ví dụ, nếu bạn nhập 13 vào inputbox, Visual Basic lưu –1 trong trường dữ liệu. Để làm các việc rắc rối, Visual Basic không thông báo một lỗi khi một số khác hơn 0 hoặc –1 được nhập. Bạn nên cẩn thận khi sử dụng kiểu BOOOLEAN bởi vì số nào khác 0 được nhập vào trong trường BOOOLEAN được chuyển thành –1.
+ Kiểu BYTE chỉ chấp nhận nhập trong phạm vi từ 0 đến 255. Những giá trị khác ( gồm các số không chấp nhận ) có kết quả trong một runtime error ( số lỗi 524 ) khi bạn cố gắng cập nhật bản ghi.


Cảnh báo : Cái hoạt động này được thay đổi từ Visual Basic 4.0. Trong quá khứ thì, Microsoft Jet sẽ tự động chuyển các giá trị không hợp lệ đến một giá trị byte và không thông báo lỗi. Nếu bạn nhập giá trị 255 ( được lưu trữ như FF trong hệ số hexa), Visual Basic lưu 255 trong trường dữ liệu. nếu bạn nhập 260 ( dược lưu như 0104 trong hệ số hexa—nó sẽ chiếm hai byte! )

+ Kiểu COUNTER là một trường hợp đặc biệt. Đây là một sự tự động tăng, nó là trường dữ liệu chỉ đọc.


+ Kiểu MEMO và TEXT
+ Kiểu GUID
Xây dựng đề án các kiểu trường dữ liệu Visual Basic 5
Đề án sau minh hoạ các kiểu trường dữ liệu khác nhau lưu các dữ liệu vào của người sử dụng. Bạn cũng xem Visual Basic trả lời việc nhập vào đó là phạm vi bên ngoài của các cho các kiểu trường dữ liệu khác nhau.


  1. Bắt đầu bằng cách tạo một đề án Visual Basic mới ( lựa chọn File | New Project). Sử dụng bảng 2.2 và hình 2.8 như là hướng dẫn.




Cảnh báo : Chú ý rằng bạn đang tạo một bộ bốn nút với tên giống nhau, nhưng các giá trị thuộc tính khác nhau. Đây là một mảng điều khiển. Các mảng điều khiển đưa ra một cách hay để đơn giản mã Visual Basic.

Hình 2.8 :


Bảng 2.2 :




Điều khiển ( Control)

Thuộc tính ( Property)

Thiết lập ( Setting)

Project

Name

prjFieldTypes

Form


Name

Caption


frmFieldTypes

VB 5 Basic Data Field Types



CommandButton



Name

Caption


Height

Index


Width

cmdBtn

&Add


300

0

1200



CommandButton



Name

Caption


Height

Index


Width

cmdBtn

&Update


300

1

1200



CommandButton



Name

Caption


Height

Index


Width

cmdBtn

&Delete


300

2

1200



CommandButton



Name

Caption


Height

Index


Width

cmdBtn

E&xit


300

4

1200


DataControl




Name

DatabaseName

RecordSource


datFieldTupes

FieldTypes. mdb

FieldTypes



Каталог: file -> downloadfile5 -> 169
file -> CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
file -> CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
file -> TIÊu chuẩn quốc gia tcvn 7790-5 : 2008 iso 2859-5 : 2005
file -> Qcvn 81: 2014/bgtvt
file -> UỶ ban nhân dân cộng hòa xã HỘi chủ nghĩa việt nam
file -> VIỆn chăn nuôi trịnh hồng sơn khả NĂng sản xuất và giá trị giống của dòng lợN ĐỰc vcn03 luậN Án tiến sĩ NÔng nghiệp hà NỘI 2014
downloadfile5 -> Đề tài báo cáo Thực trạng hoạt động quản trị bán hàng và 1 số giải pháp nhằm nâng cao công tác quản trị bán hàng tại công ty A. D. A
downloadfile5 -> English 12 – Vocabulary + Grammar review cách nhận biết từ loại

tải về 0.58 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   13




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương