Cách thích hợp để sử dụng các lĩnh vực hiện có là gì?


13

Tôi là người mới bắt đầu Drupal. Tôi hơi bối rối về việc thêm các trường vào các loại nội dung.

Trường hợp 1: Giả sử nếu tôi có ba loại nội dung Book, Article& White Paper. Tôi đã tạo Authorstừ vựng chứa danh sách tất cả các Tác giả.

  1. Bây giờ, tôi có nên tạo trường "Được viết bởi" (tham chiếu thuật ngữ cho Tác giả) cho từng loại nội dung hoặc tạo trường cho một loại nội dung và sử dụng nó trong các loại nội dung khác không?

  2. Ưu điểm / nhược điểm của một trong hai phương pháp là gì?

  3. Điều gì xảy ra nếu tôi xóa trường được sử dụng lại từ một loại nội dung? Nó có bị xóa trong tất cả những người khác?

Trường hợp 2: Tôi có các loại nội dung follwing: (với các yêu cầu trường được chỉ định)

+--------------+----------------------+
| Content Type | Field Required       |
+--------------+----------------------+
| Book         | Year of publication  |
+--------------+----------------------+
| Presentation | Date of Presentation |
+--------------+----------------------+
| Article      | Date of Publication  |
+--------------+----------------------+
| Event        | Held On              |
+--------------+----------------------+

Tôi nên làm gì? Tôi có nên tạo một trường duy nhất cho một loại nội dung và sử dụng nó cho tất cả các loại nội dung khác hoặc tạo trường cho từng loại nội dung không?

Giúp tôi hiểu rõ khi nào và làm thế nào để sử dụng lại các trường hiện có một cách thích hợp.

Câu trả lời:


8

Tôi có nên tạo trường "Được viết bởi" (tham chiếu thuật ngữ cho Tác giả) cho từng loại nội dung hoặc tạo trường cho một loại nội dung và sử dụng nó trong các loại nội dung khác không?

Nếu bạn cần thu thập cùng một thông tin cho các loại nội dung khác nhau, bạn nên sử dụng một trường duy nhất. Trường "Viết bởi" của bạn có vẻ như là trường hợp hoàn hảo cho điều đó. Nếu bạn có các từ vựng khác nhau cho các tác giả của mình, hãy nói "Tác giả sách", "Tác giả bài viết", v.v., bạn muốn (và cần) sử dụng các trường riêng biệt cho mỗi tác giả.

Ưu điểm / nhược điểm của một trong hai phương pháp là gì?

Một lợi thế là bạn có thể truy vấn tất cả các loại nội dung theo một trường. Vì vậy, nếu bạn thấy mình muốn xem tất cả nội dung được viết bởi một tác giả, hoặc thậm chí tất cả nội dung được viết bởi tất cả các tác giả, bạn sẽ dễ dàng tạo ra một chế độ xem để làm điều đó. Nhưng điều đó chỉ hữu ích nếu bạn cần nó, rõ ràng. Tôi cho rằng điểm chính là trường hợp sử dụng của chính trường sẽ thực sự ra lệnh cho những lợi thế / bất lợi tương đối của một trong hai phương pháp.

Ngoài ra, bất cứ khi nào bạn tạo một trường, bạn tạo hai bảng cơ sở dữ liệu (một cho dữ liệu hiện tại, một cho dữ liệu sửa đổi). Chúng ta sẽ nói, có những cảm giác "hỗn hợp" về việc phương pháp lưu trữ này có phải là ý tưởng tốt nhất từ ​​quan điểm hiệu suất hay không, và một số người thích giữ số lượng bàn xuống. Khi bạn đính kèm một trường hiện có vào một loại nội dung khác, cùng một bảng cơ sở dữ liệu được sử dụng cho tất cả chúng, để hộp đó được đánh dấu. Một lần nữa, điều này chỉ có ý nghĩa khi dữ liệu của bạn có thể được tách ra.

Điều gì xảy ra nếu tôi xóa trường được sử dụng lại từ một loại nội dung? Nó có bị xóa trong tất cả những người khác?

Trường sẽ chỉ bị xóa sau khi nó được tách ra khỏi tất cả các loại nội dung. Dữ liệu thuộc về loại nội dung mà bạn đã tách trường sẽ được chuyển vào bảng dữ liệu đã bị xóa và bị xóa trong quá trình chạy cron.

Đối với trường hợp 2, và chỉ cần hỏi chính mình ...

Hãy nhớ rằng bạn có thể có các nhãn khác nhau cho từng thể hiện của từng loại nội dung của cùng một trường, điều đó có cung cấp cho bạn đủ một gợi ý trực quan (hoặc dẫn dữ liệu) để cho bạn biết sự khác biệt giữa dữ liệu không?

Nếu vậy, hãy sử dụng một trường ngày duy nhất để đạt được những lợi thế được đề cập ở trên. Nếu không, nó có ý nghĩa hơn đối với thiết kế dữ liệu của bạn để có các trường riêng biệt.

Tất cả đều thuộc về những gì phù hợp với trang web cụ thể của bạn, nhưng hy vọng những điều trên sẽ giúp bạn có một số cách để chuyển tiếp.


Tôi không hiểu điều này:Keeping in mind that you can have different labels for each content type's instance of the same field, will that give you enough of a visual (or data-led) cue to let you know the differences between the data?
móng vuốt

4
Tôi chỉ có nghĩa là tùy thuộc vào bạn chọn dựa trên những gì bạn cần làm với dữ liệu của mình - lấy ngày xuất bản và ngày trình bày làm ví dụ, điều đó có quan trọng với bạn nếu chúng được tách ra không? Bạn có cần lọc nội dung dựa trên ngày đó không? Nó sẽ cung cấp cho bạn kết quả không mong muốn nếu bạn sử dụng một trường duy nhất và nhận dữ liệu cho tất cả các loại nội dung khi lọc trên trường đó? Đó là những câu hỏi để tự hỏi chính mình. Đây thực sự là một vấn đề thiết kế dữ liệu, hệ thống thực thể / trường của Drupal chỉ là lớp trừu tượng với nó. Nếu thiết kế cái này bên ngoài Drupal, bạn sẽ đặt dữ liệu đó vào cùng một bảng chứ?
Clive
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.