2011-12-03 27 views
7

tôi đang xây dựng một hệ thống mới (đèn - máy chủ ubuntu, php 5.3, mysql 5.5, apache 2, redis) cho công ty của tôi (giống như một phiên bản 2.0)cột cơ sở dữ liệu và bình thường hóa ngoại quan trọng

tôi muốn làm cho nó đúng và làm cho nó tốt hơn.

tôi muốn sử dụng innodb và tôi muốn biết nếu có tiêu chuẩn trong đặt tên cột và khóa ngoài.

ví dụ:

table_a 
table_a_id 
table_a_name 
etc... 

cách này khi bạn rời tham gia của nó rất dễ dàng để phân biệt nhưng nếu bạn có tên dài nó có thể gây đau để viết sql.

table_a 
id 
name 
etc... 

theo cách này, bảng rất dễ hiểu nhưng bạn phải sử dụng bí danh hoặc tên bảng mỗi khi bạn tham gia.

đặt tên cho phần cơ sở dữ liệu.table.column của chuẩn hóa cơ sở dữ liệu?

+2

hoàn toàn là câu hỏi cá nhân, miễn là bạn giữ một tiêu chuẩn và bạn gắn bó với tất cả đều tốt –

Trả lời

11

quy ước đặt tên của cơ sở dữ liệu, bảng, cột, khóa, khóa ngoại không có liên quan gì đến việc chuẩn hóa cơ sở dữ liệu.

mặc dù, tôi khuyên bạn nên giữ cấu trúc quy ước đặt tên giống nhau ở mọi nơi. tất cả các tên của tôi là khá chuẩn, một từ hoặc nếu đó là một cụm từ được phân tách bằng dấu gạch dưới, không có số và ký tự đặc biệt. tương tự cho các cột, các phím và fk (với ngoại lệ với số) và tôi luôn luôn sử dụng plurials (nó hiếm bạn chỉ có 1 db, 1 bảng với 1 cột và 1 hàng)

đây là những gì tôi làm:

databases: companies 
tables: clients, clients_products, products 
column: id, name, address, city 
key: name 
unique key: name 

theo cách này khi bạn truy vấn dữ liệu của bạn, nó rất rõ ràng những gì bạn yêu cầu hoặc những gì bạn tìm kiếm.

0

đang đặt tên cho phần cơ sở dữ liệu là database.table.column của chuẩn hóa cơ sở dữ liệu?

No. Nói cách khác, bình thường phải làm với tăng tính toàn vẹn dữ liệu bằng cách tái cấu trúc bảng dựa trên việc xác định một số loại phụ thuộc nhất định giữa các thuộc tính.

Tên của bảng và cột là API của bạn.

ISO 11.179, Công nghệ thông tin-Metadata quan đăng ký (MDR), là một tiêu chuẩn quốc tế cho đại diện metadata trong một registry. Mặc dù nó nhắm vào ngữ nghĩa, không phải bảng và cột, nhưng rất nhiều nhà thiết kế cơ sở dữ liệu sử dụng nó như một hướng dẫn để đặt tên cho các bảng và cột. Trong các tổ chức lớn, nó thực sự có giá trị. (Phụ thuộc chức năng, trong đó một phần của bình thường hóa, là một điều ngữ nghĩa.)

Bạn có thể thấy hữu ích khi khám phá sự khác biệt giữa tên bảng và lớp đối tượng. (Lớp đối tượng theo nghĩa này không liên quan gì đến lập trình hướng đối tượng. Đây là thuật ngữ kỹ thuật trong ISO 11179.)

A review copy of part 5 (PDF), Nguyên tắc đặt tên và nhận dạng, có sẵn trực tuyến. Wikipedia có thể là một tham chiếu lâu dài hơn. (Có thể không.)

Các vấn đề liên quan