2010-07-16 38 views
7

Tôi đang mã hóa trang web liên quan đến việc lưu trữ dữ liệu rất đơn giản, chỉ một danh sách rất dài tên không có dữ liệu bổ sung trên máy chủ. Khi dữ liệu này đơn giản như vậy, tôi không thực sự muốn sử dụng MySQL (nó sẽ hơi quá khó khăn) vì vậy tôi hỏi cách tốt nhất để lưu trữ dữ liệu rất đơn giản trên máy chủ là gì.Phương pháp lưu trữ dữ liệu phía máy chủ tốt nhất cho dữ liệu đơn giản

Tôi chắc chắn sẽ ưu tiên tốc độ hơn bất kỳ thứ gì khác và dễ dàng truy cập dữ liệu qua javascript và AJAX sẽ rất tốt vì phần còn lại của trang web được mã hóa bằng javascript/jQuery. Tôi không thực sự quan tâm nếu dữ liệu có thể được xem tự do (vì nó sẽ có sẵn anyway), miễn là nó không thể được thay đổi bởi người dùng trái phép.

+1

Chính xác thì bạn thấy 'clunky' là gì? Dữ liệu có được thay đổi không? Chúng ta đang nói về số lượng dữ liệu nào? Làm thế nào nó sẽ được truy cập (ví dụ: nạp vào một danh sách trong JS?)? –

+0

Tôi chỉ nghĩ rằng sẽ là một sự lãng phí để có toàn bộ cơ sở dữ liệu MySQL chỉ lưu trữ một danh sách dài các tên, nếu nó có thể được thực hiện hiệu quả hơn theo một cách khác. Dữ liệu không cần phải thay đổi, chỉ cần thêm dữ liệu theo thời gian. Nó sẽ là một danh sách khoảng 2000 tên và sẽ được tải (tốt hơn là thông qua AJAX) vào trình duyệt của khách hàng. – DLiKS

+0

http://stackoverflow.com/questions/3265142/javascript-jquery-data-storage-method-database – Anders

Trả lời

3

Sử dụng tệp XML có thể truy cập web. Sau đó, bạn có thể truy vấn tệp XML từ trình duyệt nếu cần, và vẫn phân tích cú pháp/ghi nó trong PHP. Bạn sẽ muốn sử dụng chức năng flock trong PHP để đảm bảo rằng hai phiên bản của một trang không cố gắng ghi vào tệp đó cùng một lúc.

+0

Cảm ơn câu trả lời! Có cách nào để truy cập tệp XML bằng cách sử dụng Javascript và AJAX không? – DLiKS

+1

http://en.wikipedia.org/wiki/XMLHttpRequest – Aaron

2

Viết nó vào một tệp và lưu dữ liệu dưới dạng đối tượng được tuần tự hóa. Bằng cách này, khi bạn đọc dữ liệu, nó có thể truy cập ngay lập tức dưới dạng kiểu biến mà bạn cần (mảng, obj, v.v.). Điều này sẽ nhanh hơn phân tích cú pháp XML.

+0

Cảm ơn bạn đã trả lời! Bạn có thể chỉ cho tôi bất kỳ bài viết nào về phương pháp này không? – DLiKS

+0

Chắc chắn: http://php.net/manual/en/function.serialize.php và http://www.php.net/manual/en/function.unserialize.php để đọc và ghi dữ liệu. Sau đó, nếu bạn muốn chuyển đổi dữ liệu thành json: http://www.php.net/manual/en/function.json-encode.php – Evan

+2

BTW, nếu bạn không cần thực hiện bất kỳ thao tác nào trên thông tin của tệp và theo nghĩa đen chỉ muốn chuyển thông tin đó cho người dùng, việc phân phối tài liệu XML có thể tốt hơn, bởi vì không có tải xử lý máy chủ nào thì – Evan

5

Có rất nhiều điều cần suy nghĩ về điều này.

  1. Thông tin có giống nhau cho tất cả người dùng chỉ với một tập hợp áp dụng cho tất cả người dùng không? Hoặc là có một bộ dữ liệu riêng biệt cho mỗi người dùng?
  2. Dữ liệu sẽ được phân phát tới khách hàng như thế nào, tôi đoán ở đây là bạn sẽ có một dịch vụ web hoặc có thể trả về một JSON.
  3. Từ quan điểm bảo mật, bạn có muốn ai đó có thể "lấy" dữ liệu và chạy không?

Cá nhân tôi thấy rằng cơ sở dữ liệu thường là lựa chọn tốt hơn, nhưng nếu không tôi sẽ sử dụng tệp XML. Hãy nhớ rằng mặc dù bạn phải cẩn thận với việc tải/đọc các tệp XML để phục vụ các yêu cầu web để ngăn chặn bất kỳ sự cố khóa tệp tiềm ẩn nào.

+0

Cảm ơn bạn đã trả lời! Thông tin sẽ giống nhau đối với tất cả người dùng và tôi không quan tâm nếu ai đó chỉ có thể lấy tất cả dữ liệu, nó có sẵn miễn phí trên trang web, miễn là họ không thể chỉnh sửa nó! – DLiKS

Các vấn đề liên quan