ID bài có đáng tin cậy không?


7

Tôi hiểu rằng ID bài đăng là duy nhất , nhưng chúng có đáng tin cậy như ID dữ liệu liên tục không?

Cụ thể hơn, có đảm bảo rằng, thông qua việc di chuyển hoặc trao đổi dữ liệu khác, ID của bài đăng sẽ không thay đổi?

Tôi hiểu wordpress chủ yếu được triển khai bằng MySQL, vì vậy ID bị chi phối bởi AUTO_INCREMENTcơ chế; tuy nhiên, có bất kỳ cảnh báo nào về kết thúc của Wordpress sẽ thay đổi hành vi này trong tương lai hay có khả năng với một triển khai kiên trì khác (như MongoDB) không?

Câu trả lời:


6

Câu trả lời mang tính mô phạm là KHÔNG.

Mặc dù ID là duy nhất nhưng chúng có thể thay đổi mà không có bất kỳ thay đổi nào trong UX miễn là thay đổi đó giữ được tính nhất quán của DB. Và trong khi tạo một bài đăng mới sẽ tạo ra một ID duy nhất mới, bạn cũng có thể tạo một bài đăng qua mã để sử dụng lại một số ID "cũ".

Trong thực tế chúng đáng tin cậy, nhưng nếu độ tin cậy rất quan trọng đối với bạn thì bạn cần đính kèm một số dữ liệu vào bài đăng sẽ được sử dụng làm định danh đáng tin cậy cho nhu cầu của riêng bạn.

Cập nhật: hoàn toàn quên nó vì nó hiếm khi được sử dụng và hầu hết thời gian tôi thấy nó được sử dụng không chính xác, nhưng wordpress có một định danh duy nhất đáng tin cậy theo định nghĩa và đó là GUID


1
Tất cả phụ thuộc vào mức độ tin cậy mà bạn cần. Tính duy nhất của ID chỉ là sản phẩm phụ của gia tăng tự động và không có nơi nào được xác định là trường xác định bài đăng và tôi hoàn toàn quên nó khi tôi viết câu trả lời, nhưng có một trường theo định nghĩa là định danh đáng tin cậy duy nhất của nội dung và đó là hướng dẫn codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
Đánh dấu Kaplun

1
@guidod, không có gì đáng tin cậy đối với mã xấu không tôn trọng các tiêu chuẩn. ID thậm chí không phải là một tiêu chuẩn.
Đánh dấu Kaplun

1
hmmm, và tất nhiên nó không thay đổi khi xuất và nhập và nó chứa URI chứ không phải URL.
Đánh dấu Kaplun

2
Đối với "ID thậm chí không phải là một tiêu chuẩn", không chắc ý của bạn là gì. Có ID tự động trên cơ sở dữ liệu MySQL là tiêu chuẩn (thực tế, nếu bạn muốn, nhưng dù sao cũng là tiêu chuẩn) như bạn có thể nhận được. GUID sẽ được thay đổi thay đổi nếu bạn hoặc bất kỳ ai trong tương lai thay thế tên miền cũ -> tên miền mới trong cơ sở dữ liệu WordPress, điều mà nhiều người thường làm (chắc chắn là thường xuyên hơn nhiều so với việc tự mày mò ID).
hướng dẫn

1
ID chỉ là một số không có ý nghĩa được gán, không giống như IDentifier duy nhất toàn cầu. Chỉ vì rất nhiều người có lỗi khi không hiểu GUID và nghĩ rằng đó là một URL không làm cho ID đáng tin cậy hơn, nó chỉ làm cho GUID trở nên kém tin cậy hơn.
Đánh dấu Kaplun

9

Tôi hiểu rằng ID bài đăng là duy nhất, nhưng chúng có đáng tin cậy như ID dữ liệu liên tục không?

Đúng.


2
Có thể chỉ là câu trả lời của tháng ngay tại đây
Andrew Bartel

4
Câu hỏi đặc biệt đề cập đến "thông qua di chuyển" - từ những gì tôi nhớ quy trình xuất / nhập khẩu WP sẽ thay đổi ID bài đăng để phù hợp với hệ thống mới. IE nếu bạn xuất các bài đăng 1-10 từ Trang A và nhập chúng vào Trang B đã có 20 bài đăng, ID của bài đăng mới của bạn sẽ là 21-30.
Lex R

Nó đề cập đến "di cư" ở đâu? Và, như một bên, "di chuyển cơ sở dữ liệu" không giống như "sử dụng Trình nhập WordPress". Nếu bạn di chuyển DB của mình, ID bài đăng chắc chắn sẽ giữ nguyên.
Julian Pille

2
thông qua một di chuyển hoặc trao đổi dữ liệu khác trong đoạn thứ hai. Tôi muốn nói rằng nhà nhập khẩu đủ điều kiện là "trao đổi dữ liệu khác".
Milo

+1 trên bình luận - phải đọc phần nói. Hai lần. Và do đó, một upvote cho bình luận của @ LexR cũng vậy.
Julian Pille

4

Tóm lại mọi thứ đã được nói, câu trả lời là:

Có, ID đáng tin cậy cho điều này, miễn là bạn không sử dụng trình xuất / nhập WordPress WordPress để đưa các bài đăng được đề cập vào một bản cài đặt khác. Miễn là bạn di chuyển cơ sở dữ liệu hiện có và không cài đặt WordPress từ đầu, ID sẽ vẫn như cũ.

PS1: Có, như Mark Kaplun tuyên bố, ID có thể thay đổi hoặc được sử dụng lại nếu bạn tự thay đổi hoặc sử dụng lại chúng , nhưng bạn đã biết điều đó và điều đó đúng với bất kỳ trường nào trên bất kỳ cơ sở dữ liệu nào.

PS2: Không nên tin cậy trường GUID wp_posts vì chúng phụ thuộc vào URL của bài đăng gốc và vô tình có thể được thay thế bằng URL mới khi trang web được di chuyển và rõ ràng GUID cũng sẽ thay đổi khi sử dụng nhà xuất khẩu / nhập khẩu .


Bạn có chắc chắn rằng GUID sẽ thực sự được thay đổi khi sử dụng nhà xuất khẩu / nhà nhập khẩu không? Câu trả lời này cho thấy GUID không thay đổi khi xuất / nhập: wordpress.stackexchange.com/questions/64779/ săn
Magne

1

Câu trả lời có thể là Cả Có và Không.

Id cần phải là duy nhất cho một trang web. Bạn biết đấy, nếu có hai id, nội dung không thể được phục vụ. Vì WP sử dụng id để phục vụ nội dung cho bài và trang. Vòng lặp WordPress được thiết kế để hoạt động như thế này. Vì vậy, bạn có thể sử dụng nó cho phát triển chủ đề hoặc plugin của bạn. Sẽ không có vấn đề với điều này.

Nhưng nó có thể là một nỗi đau cho bạn nếu bạn xuất nội dung từ trang web này sang trang web khác. Vì trang web mới có thể tạo id duy nhất cho nội dung mới được thêm vào. Trong trường hợp đó, id không thể là một giải pháp tốt.

Vì vậy, bạn có thể sử dụng slug thay vì ids.

PS Slug cũng có thể được thay đổi. Nhưng nó sẽ không tự động thay đổi khi bạn nhập nội dung từ trang web này sang trang web khác.

Hi vọng điêu nay co ich. Sa-bát


0

ID bài không nhất thiết phải là duy nhất. Tham chiếu câu trả lời của tôi về bài đăng bạn liên kết đến: https://wordpress.stackexchange.com/a/209832/71131

Trong Mạng Multisite Wordpress, idkhông phải là duy nhất . Một bài đăng blog trên một trang web có thể có cùng id với một bài đăng blog trên một trang web khác. Có lẽ vì mỗi trang web có một cơ sở dữ liệu / bảng riêng biệt. (Điều này chỉ xảy ra với tôi.) Đây là vấn đề nếu bạn trong mã của mình (trong plugin hoặc trong dịch vụ của bên thứ ba giao tiếp với cài đặt Wordpress) đang sử dụng Wordpress idđể tham khảo một bài đăng blog duy nhất cụ thể trên Wordpress Mạng đa điểm.

Do đó, tôi khuyên bạn nên sử dụng $post->guidthay thế, đó là những gì Wordpress đã dành riêng như Công cụ nhận dạng duy nhất toàn cầu. Cảm ơn @Mark Kaplun đã cho tôi biết điều này. NB: Hướng dẫn phải ở trong lowcaps để nó hoạt động.

@guidod đã đề cập đến rủi ro rằng "[hướng dẫn có thể] vô tình bị thay thế bằng các URL mới khi trang web được di chuyển" , bởi vì ai đó có thể thực hiện tìm / thay thế trên tất cả các URI và / hoặc muốn cập nhật phần URI của GUID như tốt, mặc dù họ không bao giờ thay đổi bất cứ điều gì trong GUID. Để giảm thiểu rủi ro này, bạn cũng có thể lưu trữ $post->IDdưới dạng bản sao lưu. Nếu dịch vụ bên thứ ba của bạn truy cập và tham khảo các bài đăng trên blog trong bản cài đặt Wordpress của bạn không thể tìm thấy bài đăng dựa trên hướng dẫn, thì ID của bài đăng có thể được thử (nhưng hãy nhớ bối cảnh hóa nó dựa trên blog / trang web phù hợp, nếu bạn đang làm nó trên một cài đặt nhiều trang).


NB: Hướng dẫn phải ở trong lowcaps để nó hoạt động.
Magne
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.