Tôi chưa từng tạo giỏ hàng hoặc diễn đàn bằng php. ngoài việc xem và phân tích dự án của người khác hoặc xem hướng dẫn hiển thị cách tạo dự án như vậy hoặc cách trở thành dự án như vậy. làm sao một người biết cách thiết kế cấu trúc cơ sở dữ liệu để tạo ra một thứ như vậy? im đoán khả năng của nó qua thử và sai ...làm cách nào để biết cách thiết kế cơ sở dữ liệu mysql khi tạo ứng dụng php nâng cao?
Trả lời
Kỹ thuật chính mà bạn có thể tìm hiểu về thiết kế cơ sở dữ liệu được gọi là Database Normalization.
Chuẩn hóa cơ sở dữ liệu có giới hạn, đặc biệt nếu bạn có nhiều giao dịch. Tại một số thời điểm bạn có thể bị buộc phải Denormalize.
Nhưng tốt hơn hết là bắt đầu với thiết kế cơ sở dữ liệu chuẩn hóa.
bạn nên đọc và hiểu những điều cơ bản của normalization. đối với hầu hết các dự án, bình thường hóa thành biểu mẫu bình thường thứ 3 sẽ ổn. luôn có những tình huống nhất định khi bạn muốn nhiều hơn hoặc ít chuẩn hóa hơn, nhưng việc hiểu các khái niệm đằng sau nó sẽ cho phép bạn suy nghĩ về cách cơ sở dữ liệu của bạn được cấu trúc theo một định dạng chuẩn hóa.
đây là một ví dụ rất cơ bản về bình thường hóa một bảng:
students
student_id
student_name
student_class
student_grade
một bảng khá chuẩn chứa dữ liệu khác nhau, nhưng chúng ta có thể thấy một số vấn đề ngay lập tức. chúng ta có thể thấy rằng tên của một học sinh phụ thuộc vào ID của mình, tuy nhiên, một học sinh có thể tham gia vào nhiều hơn một lớp, và mỗi lớp sẽ có một lớp khác nhau. sau đó chúng ta có thể suy nghĩ về các bảng như vậy:
students
student_id
student_name
class
class_id
class_name
đây không phải là xấu, bây giờ chúng ta có thể thấy chúng tôi có sinh viên khác nhau, và các lớp học khác nhau, nhưng chúng tôi đã không bị bắt lớp của học sinh.
grades
student_id
class_id
grade
bây giờ chúng tôi có bảng thứ 3, cho phép chúng tôi hiểu mối quan hệ giữa một học sinh cụ thể, một lớp cụ thể và một lớp liên quan đến lớp đó. từ bảng ban đầu đầu tiên của chúng tôi, bây giờ chúng tôi có 3 bảng trong một cơ sở dữ liệu chuẩn hóa (giả sử chúng ta không cần phải bình thường hóa lớp nữa vì mục đích ví dụ :))
một vài điều chúng ta có thể thu thập từ ví dụ rất cơ bản này :
- dữ liệu của chúng tôi được gắn với khóa của một số loại (student_id, class_id và student_id + class_id). đây là những số nhận dạng duy nhất trong mỗi bảng.
- với các quan hệ có quan hệ của chúng tôi, chúng tôi có thể liên kết thông tin với nhau (số học sinh đã đăng ký là bao nhiêu?)
- chúng tôi có thể thấy bảng của chúng tôi hiện không chứa dữ liệu trùng lặp , trong đó student_class có thể là giá trị tương tự cho nhiều sinh viên, nếu chúng tôi phải thay đổi tên lớp, chúng tôi sẽ cập nhật tất cả các bản ghi theo định dạng chuẩn hóa của chúng tôi, chúng tôi chỉ có thể cập nhật class_name của class_id)
câu trả lời tuyệt vời dude – jake
Tôi cũng khuyên bạn nên sử dụng trình chỉnh sửa trực quan để tạo lược đồ cơ sở dữ liệu của bạn. Tôi đã sử dụng gần đây: http://dev.mysql.com/workbench/
Khi bạn tạo thiết kế cơ sở dữ liệu, hãy nhờ ai đó có nhiều kinh nghiệm xem qua và cung cấp phản hồi cho bạn.Nhưng biết rằng bạn có thể dành nhiều thời gian cho việc thiết kế, cuối cùng bạn sẽ phải thực hiện và sẽ tìm ra bạn đang thiếu một cái gì đó hoặc có thể làm một công việc tốt hơn để thực hiện nó theo một cách khác.
Vì vậy, thiết kế, nhận phản hồi, nhưng đừng ngại thay đổi.
- 1. thiết kế trường bảng trong cơ sở dữ liệu mysql?
- 2. Mẫu thiết kế dữ liệu/cơ sở dữ liệu?
- 3. Làm cách nào để xóa cơ sở dữ liệu MySQL?
- 4. Làm cách nào để tính toán chi phí lưu trữ thiết kế cơ sở dữ liệu?
- 5. Ứng dụng web PHP: câu hỏi thực hành tốt nhất về thiết kế cơ sở dữ liệu mysql
- 6. Làm cách nào để thiết kế cơ sở dữ liệu với Lịch sử sửa đổi?
- 7. Thiết kế cơ sở dữ liệu tài chính cá nhân
- 8. Thiết kế cơ sở dữ liệu nào tốt hơn?
- 9. Làm cách nào để thực thi PHP được lưu trữ trong cơ sở dữ liệu MySQL?
- 10. công cụ thiết kế cơ sở dữ liệu câu hỏi
- 11. Thừa kế trong thiết kế cơ sở dữ liệu
- 12. Thiết kế cơ sở dữ liệu SaaS - Nhiều Cơ sở dữ liệu? Tách?
- 13. PHP/MYSQL tập lệnh tìm kiếm nâng cao. Làm sao?
- 14. Thiết kế cơ sở dữ liệu Thực tiễn tốt nhất
- 15. Làm thế nào để trình bày một thiết kế cơ sở dữ liệu?
- 16. Thiết kế cơ sở dữ liệu thanh toán định kỳ
- 17. Tư vấn thiết kế cơ sở dữ liệu cần
- 18. Làm cách nào để lấy trường cuối cùng trong cơ sở dữ liệu Mysql bằng PHP?
- 19. Làm cách nào để chuyển dữ liệu giữa 2 cơ sở dữ liệu MySQL?
- 20. Làm thế nào để thay đổi thiết kế cơ sở dữ liệu trong một ứng dụng được triển khai?
- 21. Thiết kế lớp trừu tượng cơ sở dữ liệu - Sử dụng IRepository đúng cách?
- 22. Thiết kế cơ sở dữ liệu ứng dụng web đa người dùng
- 23. thiết kế cơ sở dữ liệu cho ứng dụng giỏ hàng?
- 24. Lỗi khi kéo cơ sở dữ liệu mysql trong cơ sở dữ liệu mysql cục bộ
- 25. cách tạo cơ sở dữ liệu mysql từ vải động
- 26. Câu hỏi thiết kế cơ sở dữ liệu
- 27. Làm cách nào để khôi phục một cơ sở dữ liệu từ mysqldump chứa nhiều cơ sở dữ liệu?
- 28. cơ sở dữ liệu mysql kỹ sư đảo ngược để tạo ứng dụng django
- 29. Cách kết nối ứng dụng Android với cơ sở dữ liệu MySQL?
- 30. Làm cách nào để xây dựng truy vấn cơ sở dữ liệu chéo trong PHP?
cảm ơn bạn đã sửa lỗi chính tả. Tiếng anh của tôi thật khủng khiếp .. tôi biết: ( –
ha, không vấn đề gì :) – Owen