Tại sao các cột bảng sqlite của Data Data bắt đầu bằng 'Z'?


10

Tôi đã xem bảng sqlite mà Core Data tạo ra và nhận thấy rằng tất cả các cột trong bảng bắt đầu bằng 'Z'. Tôi nhận ra đây là một chi tiết triển khai, nhưng tôi tò mò không biết tại sao lại như vậy và liệu có quyết định thiết kế nào liên quan đến việc này không. Bất cứ ai tình cờ biết hoặc đoán tại sao?

Đây là một đầu ra lược đồ mẫu của cơ sở dữ liệu sqlite Core Data:

sqlite> .schema
TẠO BẢNG ZPOST (ZIMK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZPOSTID INTEGER, ZUSER INTEGER, ZCREATEDAT TIMESTAMP, ZTEXT VARCHAR);
TẠO BẢNG ZUSER (ZIMK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZUSERID INTEGER, ZAVATARIMAGEURLSTRING VARCHAR, ZUSERNAME VARCHAR);
TẠO BẢNG Z_METADATA (Z_VERSION INTEGER PRIMARY KEY, Z_UUID VARCHAR (255), Z_PLIST BLOB);
TẠO BẢNG Z_PRIMARYKEY (Z_ENT INTEGER PRIMARY KEY, Z_NAME VARCHAR, Z_SUPER INTEGER, Z_MAX INTEGER);

Tôi thực sự không biết lý do trong trường hợp cụ thể này, nhưng không có gì lạ khi các bảng cơ sở dữ liệu phục vụ mục đích chung là tiền tố đặc biệt để tham chiếu dễ dàng và để tránh xung đột với các bảng khác (ví dụ: người dùng và zUser).
NoChance

Có thể vì vậy họ dễ dàng nhận ra. Apple rất rõ ràng rằng bạn không bao giờ nên chỉnh sửa các bảng Dữ liệu lõi với bất kỳ thứ gì ngoài Dữ liệu lõi. Sau đó, nên chọn một số tiền tố bất thường cho tất cả các bảng Dữ liệu lõi để dễ dàng biết khi bạn đang xem bảng Dữ liệu lõi.
Caleb

1
Có lẽ nó được thiết kế bởi một cựu tư vấn viên của SAP?
Phi

@Philipp có thể có một điểm, mặc dù tôi đã cười vào đề nghị ban đầu. Trong SAP, bạn thêm Z vào bảng tùy chỉnh để đảm bảo không có xung đột với bảng nội bộ của SAP. Điều tương tự cũng có thể xảy ra ở đây: CoreData thêm Z vào phía trước các bảng được tạo cho các thực thể của bạn để đảm bảo không có xung đột bảng với bất kỳ nội dung nào trong đó.
jmstone

1
Trong cơ sở dữ liệu dev cục bộ của tôi, tôi kiểm tra tiền tố với các bảng Z để chúng được sắp xếp theo thứ tự abc đến cuối danh sách. Làm cho nó dễ dàng hơn để xem chúng cùng nhau và xóa chúng khi tôi hoàn thành.
mike30

Câu trả lời:


9

Đây là quy ước đặt tên được chọn để sử dụng trong Core Data SQLite.

Có một số lý do tại sao nó được chọn. Một trong những lý do chính là Z là một trong những chữ cái ít được sử dụng nhất của bảng chữ cái nên họ chắc chắn cảm thấy bằng cách sửa tên bảng và tên thực thể với Z, họ mở ra nhiều tùy chọn hơn cho các nhà phát triển để đặt tên cho bảng của họ với ít cơ hội dậm chân hơn quy ước đặt tên rồi.

Cuối cùng, bằng cách sử dụng Z và tất cả các mũ, các bảng Dữ liệu lõi sẽ dễ dàng phát hiện và gọi các đối tượng thực thể hơn. Trong một bình luận trong câu hỏi Mike đã đề cập rằng anh ta cũng đặt tên cho các bảng của mình bằng az để chúng sắp xếp phía dưới. Điều này cũng có thể đã được xem xét.


1
Bạn chỉ đang suy đoán dựa trên đề xuất của người khác hay bạn có một nguồn thực tế về lý do tại sao Apple chọn quy ước này? Đó là một đối số khá mỏng manh vì nó có thể có tiền tố, ví dụ: "ENTITY_". Hoặc, nếu Apple có nhu cầu về các bảng nội bộ, bí mật, những bảng này có thể được thêm tiền tố với Z và các bảng người dùng có thể được đặt tên bình thường. OP đã hỏi TẠI SAO và tôi vẫn không thấy lý do thực sự.
Matt
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.