Saturday, May 18, 2013

Chi tiết hơn về Server RC4W - cơ sở dữ liệu

Nếu bạn bỏ sót phần chi tiết 1 thì bạn nên xem lại. Phần đó nói về: nhiệm vụ và các cửa sổ, cửa sổ settings, cửa sổ database manager (quản lý cơ sở dữ liệu) và các bước thực hiện khi tiếp hành quét bài hát và nhập vào cơ sở dữ liệu.

Trong phần này sẽ nói tiếp về Server RC4W. Như đã nói thì về Server sẽ phức tạp hơn, tuy nhiên nếu bạn quản lý tốt server thì client sẽ dễ chịu hơn rất nhiều.

Phần này sẽ nói cơ sở dữ liệu. Nếu nắm được sơ sơ về phần này, bạn có thể khiến cho việc tìm kiếm bài hát ở client dễ chịu hơn rất nhiều. Tuy nhiên đây là phần nâng cao, nếu bạn không có kinh nghiệm về cơ sở dữ liệu, làm việc với nó sẽ không đơn giản.

GHI CHÚ: việc chỉnh sửa cơ sở dữ liệu có thể khiến chương trình hoạt động không như mong muốn nữa. Bạn nên có kiến thức cơ bản về access, cũng như cần đọc kĩ các mô tả về cơ sở dữ liệu trong bài viết này trước khi định làm gì.

Nơi chứa cơ sở dữ liệu

Phần mềm Server RC4W chứa cơ sở dữ liệu về các bài hát, tác giả, lời nhạc, ... trong file db.mdb ở trong thư mục file chạy. Khi bạn mới tải phần mềm về thì file này trắng, chỉ có một bảng trắng. Tuy nhiên bạn cũng có thể tải sẵn một file db.mdb có chứa danh sách karaoke của dvd midi california vol 18 nếu muốn.

File này không có mật khẩu và bạn có thể mở bằng Microsoft Access.

Nội dung file db.mdb

Chỉ có một bảng duy nhất trong file db.mdb: Songlist
Dữ liệu lưu trữ thông tin chỉ đến các file nhạc trong máy tính của bạn, các thông tin bài hát như tên bài, tên tác giả, ca sĩ, những lời đầu bài hát và các thông tin hỗ trợ tìm kiếm khác.

Cấu trúc bảng như sau:

  1. SID: Song id: số hiệu bài hát. Giá trị số duy nhất trong bảng. Hiện nay SID được quy định 3 dải số như sau:
    • 1-1000: dành cho server RC4W sử dụng quản lý danh sách bài hát
    • 1001-999999 (một triệu trừ một): dành cho Walaoke
    • Lớn hơn 1000000 (một triệu) : dành cho bạn điền số của mình vào. Không quan trọng số bao nhiêu, chỉ cần lớn hơn 1000000 và duy nhất.
  2. Title: tên bài hát 
  3. Pathfile: đường dẫn đến file nhạc. Đường dẫn khuyến khích dùng đường dẫn tuyệt đối (dạng C:\abc\xyz\song.mp3). Đường dẫn tương đối (dạng ..\..\abc\xyz.mp3) có thể dùng được nhưng không khuyến khích. 
  4. Pathfile_lyric: đường dẫn đến file lời bài hát (để dành, chưa sử dụng)
  5. Singer: tên ca sĩ 
  6. Author: tên nhạc sĩ
  7. Type: thể loại nhạc 
  8. Abbreviation: để dành 
  9. Lyric: vài từ đầu của lời bài hát 
  10. Title2, Singer2, Author2, Lyric2: "dạng 2" sử dụng cho mục đích tìm kiếm. Ví dụ như để viết tiếng việt không dấu, cho bạn tìm tiếng việt không dấu. Hoặc với tiếng Trung có thể tìm pinyin. 
  11. RemoteURL, RemoteURL_lyric: để dành, chưa sử dụng 
  12. ContentType: loại nội dung
  • DVDMIDI: bắt buộc viết chính xác là DVDMIDI nếu bài hát lấy từ dvd-karaoke midi; với loại này SID đặt đúng số như trong list nhạc (5 số hoặc 6 số)
  • MP3, MIDI, KAR, AVI, WMV, VOB, MKV, ... đuôi file nhạc.
Việc biết về nội dung file để bạn có thể kiểm tra việc chương trình đã import dữ liệu đúng hay chưa, hoặc bạn có thể tự mình thêm dữ liệu bằng tay nếu muốn (với điều kiện là bạn phải hiểu về cấu trúc file rồi)

Thứ tự ưu tiên khi tìm kiếm dữ liệu

Khi client gửi lệnh tìm kiếm, server sẽ tìm kiếm như sau với thứ tự ưu tiên như sau:
  1. SID: mã số bài hát trước. Thông thường bạn không cần tìm mã số bài hát, nhưng để tương thích ngược lại DVD MIDI thì việc tìm kiếm này được thêm vào.
  2. Title, Title2: tên bài, tên bài dạng 2
  3. Author, Author2: tác giả, tác giả dạng 2
  4. Singer, Singer2: ca sĩ, ca sĩ dạng 2
  5. Lyric, Lyric2: lời bài hát và lời bài hát dạng 2
Cũng theo thứ tự này, kết quả tìm kiếm sẽ xếp theo thứ tự trên ở client.

Các file thông tin bổ sung

Trong bài  chi tiết phần 1 có nói qua về các file thông tin bổ sung, cách chúng được sử dụng khi chương trình quét dữ liệu trong các thư mục. Phần này sẽ nói chi tiết hơn về những file này.
Ghi chú: không nhất thiết phải quan tâm đến phần này nếu bạn thấy tìm kiếm theo tên bài hát (tên file karaoke) là đủ

Importinfo.txt

Importinfo.txt là file riêng của chương trình để nhận biết các thông tin bổ sung cho file bài hát karaoke. Nội dung file này thực tế là bản copy của bảng Songlist trong cơ sở dữ liệu:
  • Dòng đầu tiên: tên các trường, cách nhau dấu TAB
  • Các dòng tiếp theo: dữ liệu của các trường đó
  • Encoding: UTF8 hoặc Unicode 16
Khi chương trình quét file nhạc, nếu không tìm thấy file importinfo.txt, nó sẽ nhập dữ liệu vào như bình thường, sử dụng tên file làm tiêu đề bài hát, còn các dữ liệu khác (tác giả, tên bài, lời nhạc) để trống. Có nghĩa là khi tìm kiếm ở client, bạn chỉ có thể tìm theo tên bài hát. Với đại đa số có lẽ thế là đủ, tuy nhiên để tiện lợi hơn, bạn nên tạo file importinfo.txt mà có kèm thông tin khác (tác giả, ca sĩ, lời nhạc). Khi đó bạn có thể tìm kiếm theo tên tác giả, lời bài hát nữa. Có thể khách hàng của bạn sẽ thấy dễ chịu hơn.

Tình huống ban đầu: Cơ sở dữ liệu trắng, bạn cho chương trình quét bài hát vào database, khi đó chỉ có mỗi tên bài hát, các trường khác bị trống, và bạn muốn bổ sung. Khi đó hãy dùng Microsoft access mở file ra và sửa ở trong bảng Songlist. Nên sao lưu file db.mdb trước khi làm việc này.
Tình huống đã dùng lâu: bạn đã có dữ liệu đầy đủ (có thể là sau khi ngồi tỉ mẩn nhập dữ liệu), muốn chia sẻ file karaoke + thông tin bổ sung (importinfo.txt) này, copy sang cho máy tính khác:
  1. Mở cửa sổ Database Manager lên
  2. Vào tab database utils
  3. Ấn Get song-info for a folder. Chọn thư mục có file karaoke. Bảng phía dưới sẽ được điền đầy thông tin về các file karaoke trong thư mục bạn chọn (sẽ không có của thư mục con).
  4. Ấn vào Export table as importinfo.txt. Chương trình sẽ xuất bảng trên vào file importinfo.txt nằm ở thư mục bạn đã chọn.
  5. Như vậy bạn đã có file importinfo.txt cho thư mục karaoke của mình, thư mục này giờ đây có thể share, người khác khác có thể import và có dữ liệu bổ sung ngay lập tức.

Lyric files

Có một loại định dạng karaoke là MP3+LRC. Nghĩa là MP3 là file nhạc, LRC là file lời bài hát. File LRC chứa thông tin sau:
  • Tên bài
  • Tác giả
  • Lời nhạc + thời gian 
Để hiểu hơn về định dạng này, có thể tìm ở http://en.wikipedia.org/wiki/LRC_%28file_format%29
Với RC4W, bạn chỉ cần biết là chương trình có đọc các file LRC cùng tên với MP3 trong thư mục, lấy đó làm thông tin bổ sung cho MP3 đó.

INF+MP3+XML

Đây là nhóm file dùng trong star.zing.vn. Nói cấu trúc file này thì không cần thiết, chỉ cần biết rằng nếu bạn dùng ZKOP hoặc ZingToWalaoke thì chương trình này có thể nhập được thư mục bài hát karaoke của 2 ứng dụng trên.

Cửa sổ Database manager - tab Database Utils

Tab Folders Management quản lý thư mục nhạc đã được nói ở phần chi tiết 1 nên ở đây không nói lại mà sẽ nói về Database Utils. Thực ra thì không có gì nhiều để nói, đây chỉ vài tool nhỏ hỗ trợ:
  • Check if missing files:  Dùng để kiểm tra xem liệu có file nhạc nào có dữ liệu trong database nhưng thực tế trên đĩa cứng không còn tồn tại hay không. Nếu có danh sách sẽ hiện ra ở bảng bên dưới.
  • Delete items: xóa dữ liệu trong cơ sở dữ liệu tương ứng với bảng bên dưới
  • Get songs-info for a folder: Dùng lấy ra một danh sách file nhạc kèm thông tin bổ sung (tên ca sĩ, nhạc sĩ, lời nhạc, ...) cho một thư mục xác định trên ổ cứng. Chức năng này dùng khi bạn muốn chia sẻ một thư mục nhạc karaoke cho bạn bè. Bạn xuất ra thành file importinfo.txt ở trong thư mục đó, người khác sẽ đơn giản import vào sẽ có đầy đủ thông tin cho từng file nhạc trong thư mục. Khi thực hiện chức năng này, bạn sẽ được yêu cầu chọn một thư mục. Chương trình sẽ tìm các file trong thư mục đó cùng với thông tin bổ sung có trong database và điền vào bảng phía dưới.
  • Export table as (importinfo.txt):  xuất toàn bộ bảng phía dưới thành file importinfo.txt vào thư mục đã chọn khi thực hiện chức năng Get songs-info for a folder.
  • Export database: Xuất danh sách nhạc cho cả database
  • Clean database: Xóa toàn bộ dữ liệu
  • Test Search: thử chức năng tìm kiếm cơ sở dữ liệu. Kiểm tra thử để xem database đã đúng chưa. Cái này sẽ ảnh hưởng đến chất lượng tìm kiếm ở client

No comments :

Post a Comment