Chỉ cần đăng nhập đơn giản bạn không cần một cơ sở dữ liệu, bạn có thể chỉ cần một bảng đơn giản.
Hãy xem xét trước hết rằng thông thường EEPROM cho phép từ 1000 đến 100000 chu kỳ ghi. Nó có nghĩa là, nếu bạn viết một ô đơn lẻ hơn 100000 bạn có xác suất cao mà tế bào của bạn chết, bạn không thể viết nó nữa.
Câu hỏi đặt ra là, có bao nhiêu thông tin đăng nhập được phép? Đó là vấn đề chọn cấu trúc dữ liệu phù hợp và hiểu số lượng bộ nhớ cần thiết là bao nhiêu.
Biết sức mạnh tính toán của Arduino: Nếu thông tin đăng nhập chỉ là 2 .. 50, danh sách đơn giản sẽ là đủ. Chèn vào cuối là O (1), xóa là O (n), tra cứu là O (n). Tuy nhiên, danh sách liên kết sẽ cho phép bạn giảm số lần ghi để xóa một giá trị nhỏ không đổi.
Nếu thông tin đăng nhập nhiều hơn, 50 .. 1000, một mảng được sắp xếp với tìm kiếm nhị phân là đủ. Chèn là O (n), xóa là O (n), tra cứu là O (n log n). Tuy nhiên, số lượng ghi là O (n) cho cả việc xóa và chèn, và vì việc viết chậm và có thể ghi các ô, nó phụ thuộc vào số lượng cập nhật bạn muốn làm.
Nếu thông tin đăng nhập là 1000 hoặc nhiều cây nhị phân tốt. Chèn là O (n log n), xóa là O (n log n), tra cứu là O (n log n). Điều tốt là để chèn và xóa bạn chỉ cần một số lượng nhỏ, liên tục viết.
Cũng là một hashtable là tốt, nhưng họ thường sử dụng nhiều bộ nhớ hơn. Chèn là trung bình O (1), xóa là trung bình O (1), tra cứu là trung bình O (1). Chèn và xóa chỉ đòi hỏi một số lượng nhỏ các hoạt động ghi liên tục, ít hơn một cây nhị phân. Như tôi đã nói, cấu trúc dữ liệu này sử dụng nhiều bộ nhớ hơn, tốc độ đi kèm với chi phí.
Bạn không cần một cơ sở dữ liệu quan hệ thực sự, nhưng có lẽ nếu bạn cần quá nhiều người dùng, bạn cần một EEPROM bên ngoài.
Tất nhiên, bạn phải lưu dữ liệu này trong bộ nhớ flash, nội bộ hoặc bên ngoài hoặc bạn sẽ mất cơ sở dữ liệu khi bạn đặt lại hoặc tắt nguồn máy.
Chúng tôi cũng có thể nói rằng bạn không cần phải lưu trữ tên người dùng và mật khẩu, bạn chỉ có thể lưu trữ một băm mật khẩu và tên người dùng. Nếu tên người dùng và mật khẩu băm tồn tại, thì bạn có thể cho phép đăng nhập. Bằng cách này, bạn có thể sử dụng bộ nhớ kích thước cố định và bộ nhớ ít hơn. Bạn có thể sử dụng MD5, đó là điện thoại Android có để gửi MD5 băm, đó là, 16 byte, do đó, Arduino phải chỉ kiểm tra nếu MD5 băm tồn tại trong danh sách người dùng ở đó, ví dụ. Và điều này rất dễ dàng và nhanh chóng.
Đây là cách * quá rộng để được trả lời trên SO. Về cơ bản, bạn hỏi "Làm thế nào để làm tất cả những điều này?" thậm chí không cần nghiên cứu đủ để hỏi đúng câu hỏi. –
@BrianRoach Tôi chỉ yêu cầu đúng cách để làm điều đó, tôi không yêu cầu chi tiết. –
@ Eng.Fouad Xin vui lòng tránh thuật ngữ "cơ sở dữ liệu" trong bối cảnh như vậy, bởi vì một cơ sở dữ liệu là một con thú hoàn toàn khác với những gì bạn cần. Xem [Wikipedia] (http://en.wikipedia.org/wiki/Database) –