Im đang làm việc trên một dự án. Hầu hết các mục đích học tập của nó, tôi thấy thực sự cố gắng một dự án phức tạp là cách tốt nhất để học một ngôn ngữ sau khi nắm được những điều cơ bản. Thiết kế cơ sở dữ liệu không phải là một điểm mạnh, tôi bắt đầu đọc về nó nhưng những ngày đầu của nó và im vẫn học.Cấu trúc cơ sở dữ liệu liên quan đến các trường động
Đây là lược đồ alpha của tôi, im thực sự tại điểm mà im chỉ cố gắng ghi lại mọi thứ mà tôi có thể nghĩ và thấy nếu có vấn đề gì xảy ra. http://diagrams.seaquail.net/Diagram.aspx?ID=10094#
Một số mối quan tâm của tôi, tôi muốn phản hồi về:
Thông báo cho lõi thuộc tính như khu vực ví dụ, cho phép nói vì đơn giản các lĩnh vực là nhà bếp, phòng ngủ, sân vườn, phòng tắm và phòng khách. Đối với một khách hàng khác có thể là trang chủ, trang liên hệ, about_us, màn hình giật gân. Nó có thể là 2 khu vực và nó có thể là 100, không cần phải giới hạn nó.
Tôi đã tạo các bảng riêng cho các giá trị mặc định và mỗi bảng được liên kết với một lỗi. Sau đó tôi đã đến vấn đề của các lĩnh vực tùy chỉnh, nếu ai đó muốn ví dụ để đánh dấu chủ đề lỗi áp dụng cho chúng tôi không có điều đó, có lẽ là 100 thứ khác vì vậy tôi muốn dính vào một tập hợp các thuộc tính và các lĩnh vực tùy chỉnh cung cấp cho mọi người sự linh hoạt.
Tuy nhiên khi tôi nhận được các trường tùy chỉnh tôi biết tôi đã có một vấn đề, tôi không thể tạo ra một bảng cho mỗi lĩnh vực tùy chỉnh vì vậy tôi thay vì sử dụng 2 bảng. trường tùy chỉnh và custom_field_values. Ý tưởng này được mọi lĩnh vực trong đó có giá trị mặc định sẽ được lưu trữ trong bảng này và mỗi người sẽ được liên kết với bảng giá trị mà sẽ chỉ có một cái gì đó như thế này
custom_fields table
id project_id name
01 1 area(default)
12 2 rooms(custom)
13 4 website(custom)
custom_field_values table
id area project_id sort_number
667 area1 1 1
668 area2 1 2
669 area3 1 3
670 area4 1 4
671 bedroom 2 1
672 bathroom 2 2
673 garden 2 3
674 livingroom 2 4
675 homepage 4 1
676 about_us 4 2
677 contact 4 3
678 splash page 4 4
Điều này trông giống như một cách hiệu quả để xử lý các lĩnh vực năng động như thế này hay có lựa chọn thay thế nào khác không?
Giá trị mặc định sẽ được mã hóa cứng để bạn có thể sử dụng hoặc thay thế bằng thẻ của riêng mình hoặc tôi có thể tạo một bảng khác để cho phép người dùng chỉnh sửa tên mặc định sẽ được liên kết với dự án của họ. Bất kỳ thông tin phản hồi được chào đón và nếu có điều gì đó rất rõ ràng với các vấn đề trong chương trình xin vui lòng phê bình.
Ugh EAV. Tôi muốn có một cái nhìn tại một NoSql thay thế nếu tôi là bạn. –