2012-02-14 52 views
5

Đối với một dự án trường học, chúng tôi phải tạo cơ sở dữ liệu của riêng mình. Tôi quyết định tạo cơ sở dữ liệu để quản lý khoảng không quảng cáo thành phần điện tử của mình. Theo yêu cầu, chúng ta cần tạo một sơ đồ ER, sau đó từ sơ đồ đó lấy được lược đồ cơ sở dữ liệu. Thật không may cho tôi, giáo sư tin rằng sơ đồ tôi tạo ra có thể được đơn giản hóa và thực thể "Part" là không cần thiết.Đơn giản hóa Sơ đồ Cơ sở dữ liệu ER/Lược đồ

This là sơ đồ tôi đã đưa ra và here là lược đồ có nguồn gốc.

Nếu tôi loại bỏ thực thể Part, sau đó để một thực thể Mạch "sử dụng" bất kỳ số nào của bất kỳ phần nào, và có mỗi phần liên kết với bất kỳ mạch nào, tôi sẽ phải có một M-to-N riêng biệt mối quan hệ từ mỗi loại thành phần đến Mạch. Mỗi mối quan hệ đó sẽ tạo ra một bảng mới. Điều này chắc chắn sẽ đi qua số lượng tối đa nghiêm ngặt của bảng chúng tôi được phép cho dự án.

Nếu giáo sư đề cập cụ thể Part là không cần thiết, thì phải có cách nào đó để loại bỏ nó dẫn đến sơ đồ và sơ đồ ER đơn giản hơn - nhưng tôi không thể thấy nó là gì.

Có thể các bạn có thể thấy nó là gì và gợi ý cho tôi?

EDIT: Dan W có đề xuất tuyệt vời. Tôi có thể loại bỏ các phần bằng cách cho mỗi loại phần (Tụ, Điện trở, vv) phím riêng của họ. Sau đó, bên trong sử dụng một phần, bao gồm các phím nước ngoài cho các thành phần. Tôi sẽ phải giả định rằng mỗi mục nhập của bảng sẽ chỉ được liên kết với một phần duy nhất, phần còn lại là null. Here's lược đồ kết quả. Lược đồ này sẽ hoạt động tốt. Nhưng bây giờ tôi phải tìm ra chính xác những thay đổi nào đối với sơ đồ ER sẽ tương ứng với lược đồ này.

EDIT2: Tôi đã đi đến kết luận rằng mối quan hệ tôi đang tìm kiếm là n-ary. Theo một số nguồn, để chuyển đổi từ n-ary sang lược đồ, bạn bao gồm khóa chính của mỗi mối quan hệ kiểu thực thể tham gia là khóa ngoài. Sau đó, thêm các thuộc tính đơn giản. This là những gì tôi nghĩ ra.

+1

Bạn không thể thay đổi PartID thành ResistorID, CapicatorID, vv và sau đó thêm các cột này vào bảng Uses_Part? –

+0

Đề xuất tốt. Tôi đã nghĩ về điều này trước đây, nhưng tôi không hoàn toàn chắc chắn làm thế nào để đại diện cho rằng trong một sơ đồ ER. Nó có thể là một mối quan hệ n-ary, nhưng tôi sẽ phải xem. – Schmidget

+2

Tôi thực sự thích thiết kế của bạn. Tôi sẽ không thay đổi gì cả. Có loại khác nhau của các bộ phận, với các thuộc tính khác nhau và bạn có các thực thể riêng biệt cho mỗi một (điện trở, tụ điện, vv). Thực thể Part là cần thiết như là thực thể supertype của chúng. Như bạn nói (chính xác) sẽ được sử dụng trong mối quan hệ M: N. –

Trả lời

1

Bạn có số lượng bảng tối đa nghiêm ngặt (thiết kế vật lý) nhưng bạn có bị hạn chế trong biểu đồ ER của mình với số lượng thực thể đó (thiết kế lôgic) không? Tất cả các thực thể của bạn cho các bộ phận - điện trở, bóng bán dẫn, tụ điện và IC chung - có thể được lưu trữ trong bảng một phần với tất cả các thuộc tính của Phần, điện trở, bóng bán dẫn, tụ điện và IC chung dưới dạng cột không có giá trị. Nếu một thuộc tính hợp lệ cho tất cả các loại thì thuộc tính đó không phải là rỗng. Bao gồm một cột khác trong bảng phần xác định loại phần (điện trở, transistor, tụ điện hoặc IC) mặc dù bạn đã có một cột kiểu trong tất cả các thực thể cũng có thể phục vụ cho điều này.

Bảng Phụ trong schema của bạn bây giờ là:

PartID (PK) 
Quantity 
Drawer 
Part Type 
Value 
Tolerance 
Subtype 
Power Rating 
Voltage 
Term_Style 
Diam 
Height 
Lead_Space 
Name 
Case 
Polarity 
Use 
V_CE 
P_D 
I_C 
H_FE 
Package 
Pins 
Description 

và bạn thả các điện trở, tụ điện, Transistor và Tổng IC bảng trong lược đồ. Để lại những thực thể đó trong sơ đồ ER của bạn vì nó cho thấy những thuộc tính nào trong bảng Parts là bắt buộc (không nên là null) cho từng loại phần.

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