Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
quan hệ 1-1
#1
làm sao để biểu diễn được quan hệ 1-1 trong relationship??
em có 2 thực thể hanghoa (mã hàng, mã phiếu bảo hành....) phiếu bảo hành (mã phiếu bảo hành, mã hàng hóa....). Làm thế nào để tạo được liên kết 1-1 giữa 2 thực thể này? khi em kéo thuộc tính khóa chính của thực thể này vào khóa ngoại của thực thể kia thì nó tạo thành 1-n, còn khi kéo 2 khóa chính vào nhau thì tạo 1-1 nhưng không nhập được dữ liệu Confused_smile
cảm ơn mọi người
Chữ ký của deephight Xin chào, mình là deephight, Tham gia http://thuthuataccess.com/forum từ ngày 16-05 -12.
Reply
Những người đã cảm ơn
#2
Bạn phải biết khi nào thì tạo quan hệ 1-1. Khi mà record bên này là duy nhất, và bên đầu nối bên kia cũng là duy nhất tương ứng thì ta mới dùng kiểu quan hệ đó.
Thường thì do 1 table quá lớn, lập trình viên không kiểm soát hết hoặc nhằm mục đích tường minh nên người ta mới tách 1 table thành 2 table nhỏ hơn và cho quan hệ 1-1.

Ví dụ, cùng chỉ về 1 chiếc xe, nhưng để phân định thông tin cá nhân và thông tin tài khoản, ta dùng quan hệ 1-1 cho hai bảng sau
TblDsNhanVien(manhanvien,hoten,CMND,ngaysinh,...)
tblTaikhoanNH(manhanvien,tenNganhang,DiachiNganHang,SoTaiKhoan,TenNguoiThuHuong)

Như vậy trong trường hợp này, tuy có thể dồn 2 table trên thành 1, nhưng người ta vẫn tách ra nhằm mục đích rõ ràng hơn. Khi đó ta dùng quan hệ 1-1.

Trường hợp của bạn, nếu xác định mỗi phiếu bảo hành chỉ có duy nhất 1 mã hàng thì có thể để mã hàng hóa làm khóa chính trong table phiếu bảo hành.
Hoặc để đảm bảo cả hai là duy nhất. Bạn đặt thuộc tính Indexed là : Yes (No Duplicates)
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn deephight , Che_Guevara
#3
Bạn hãy trả lời cho Mình câu hỏi sau:
- Bảng hàng hóa bạn dùng làm gì trong hệ thống?
- Phiếu bảo hành cần làm gì trong hệ thống?
Nếu bạn có thể nói toàn bộ hệ thống chắc sẽ đạt kq hơn.
Chúc bạn may học giỏi.
Chữ ký của gialilama Xin chào, mình là gialilama, Tham gia http://thuthuataccess.com/forum từ ngày 08-02 -12.
Reply
Những người đã cảm ơn deephight
#4
(16-05-12, 12:02 PM)gialilama Đã viết: Bạn hãy trả lời cho Mình câu hỏi sau:
- Bảng hàng hóa bạn dùng làm gì trong hệ thống?
- Phiếu bảo hành cần làm gì trong hệ thống?
Nếu bạn có thể nói toàn bộ hệ thống chắc sẽ đạt kq hơn.
Chúc bạn may học giỏi.
Em đang làm về quản lý kho hàng kinh doanh, dùng bảng hàng hóa để lưu thông tin hàng hóa như tên hàng, đơn vị tính, nhà cung cấp....
phiếu bảo hành dùng lưu thông tin bảo hành của sản phẩm: hàng hóa, tên khách, tên nhân viên lập phiếu
Chữ ký của deephight Xin chào, mình là deephight, Tham gia http://thuthuataccess.com/forum từ ngày 16-05 -12.
Reply
Những người đã cảm ơn gialilama
#5
(16-05-12, 12:01 PM)Noname Đã viết: Bạn phải biết khi nào thì tạo quan hệ 1-1. Khi mà record bên này là duy nhất, và bên đầu nối bên kia cũng là duy nhất tương ứng thì ta mới dùng kiểu quan hệ đó.
Thường thì do 1 table quá lớn, lập trình viên không kiểm soát hết hoặc nhằm mục đích tường minh nên người ta mới tách 1 table thành 2 table nhỏ hơn và cho quan hệ 1-1.

Ví dụ, cùng chỉ về 1 chiếc xe, nhưng để phân định thông tin cá nhân và thông tin tài khoản, ta dùng quan hệ 1-1 cho hai bảng sau
TblDsNhanVien(manhanvien,hoten,CMND,ngaysinh,...)
tblTaikhoanNH(manhanvien,tenNganhang,DiachiNganHang,SoTaiKhoan,TenNguoiThuHuong)

Như vậy trong trường hợp này, tuy có thể dồn 2 table trên thành 1, nhưng người ta vẫn tách ra nhằm mục đích rõ ràng hơn. Khi đó ta dùng quan hệ 1-1.

Trường hợp của bạn, nếu xác định mỗi phiếu bảo hành chỉ có duy nhất 1 mã hàng thì có thể để mã hàng hóa làm khóa chính trong table phiếu bảo hành.
Hoặc để đảm bảo cả hai là duy nhất. Bạn đặt thuộc tính Indexed là : Yes (No Duplicates)
Tức là phiếu bảo hành ko cần mã phiếu nữa mà thành PhieuBaoHanh (mã hàng hóa, ngày bắt đầu, ngày kết thúc...) phải ko ah? nếu em vẫn để mã phiếu bảo hành để tiện quản lý thì để cả 2 làm khóa được ko ah?
Chữ ký của deephight Xin chào, mình là deephight, Tham gia http://thuthuataccess.com/forum từ ngày 16-05 -12.
Reply
Những người đã cảm ơn
#6
(16-05-12, 02:04 PM)deephight Đã viết:
(16-05-12, 12:01 PM)Noname Đã viết: Bạn phải biết khi nào thì tạo quan hệ 1-1. Khi mà record bên này là duy nhất, và bên đầu nối bên kia cũng là duy nhất tương ứng thì ta mới dùng kiểu quan hệ đó.
Thường thì do 1 table quá lớn, lập trình viên không kiểm soát hết hoặc nhằm mục đích tường minh nên người ta mới tách 1 table thành 2 table nhỏ hơn và cho quan hệ 1-1.

Ví dụ, cùng chỉ về 1 chiếc xe, nhưng để phân định thông tin cá nhân và thông tin tài khoản, ta dùng quan hệ 1-1 cho hai bảng sau
TblDsNhanVien(manhanvien,hoten,CMND,ngaysinh,...)
tblTaikhoanNH(manhanvien,tenNganhang,DiachiNganHang,SoTaiKhoan,TenNguoiThuHuong)

Như vậy trong trường hợp này, tuy có thể dồn 2 table trên thành 1, nhưng người ta vẫn tách ra nhằm mục đích rõ ràng hơn. Khi đó ta dùng quan hệ 1-1.

Trường hợp của bạn, nếu xác định mỗi phiếu bảo hành chỉ có duy nhất 1 mã hàng thì có thể để mã hàng hóa làm khóa chính trong table phiếu bảo hành.
Hoặc để đảm bảo cả hai là duy nhất. Bạn đặt thuộc tính Indexed là : Yes (No Duplicates)
Tức là phiếu bảo hành ko cần mã phiếu nữa mà thành PhieuBaoHanh (mã hàng hóa, ngày bắt đầu, ngày kết thúc...) phải ko ah? nếu em vẫn để mã phiếu bảo hành để tiện quản lý thì để cả 2 làm khóa được ko ah?

Để 1 cái làm khóa, 1 cái có thuộc tính là thuộc tính Indexed là : Yes (No Duplicates).

Nếu cả hai làm khóa sẽ không đảm bảo tính duy nhất của mã hàng lẫn mã phiếu bảo hành
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn gialilama
#7
Chúng ta cần nhắc lại quan hệ 1-1 trong access
Một record của bảng này quan hệ duy nhất với một record của bảng kia và ngược lại.

Theo mình hiểu rằng, Bạn có một lô sản phẩm hàng hóa, Mỗi sản phẩm có duy nhất một phiếu bảo hành, ngược lại, bạn cần lập quan hệ cho sp và phiếu bảo hành!

Ví dụ: Bạn có 10 cái xe ô tô được mã hóa từ 1 đến 10, tương ứng bạn có 10 phiếu bảo hành cũng được mã hóa từ 1 đến 10.Khi bán thì bắt đầu ghi phiếu bảo hành.
Ta có hai bảng sau: Hanghoa(Mahanghoa,nguoikcs,ngayxuatxuong...) Mahanghoa là khóa chính
Bảng tiếp theo: Phieubaohanh(Maphieubaohanh,ngayban,nguoimua,diachinguoimua,...) Maphieubaohanh là khóa chính.
khi bạn thiết kê xong, nối quan hệ mahanghoa với maphieubaohanh sẽ được quan hệ 1-1(nhớ thiết kế cùng kiểu dữ liệu cho hai khóa chính này nhé).
chú ý: Cách này giảm được sự giả mạo phiếu bảo hành. Nhưng rất phức tạp trong quản lý khi số lượng sản phẩm tăng lên, Nếu công ty có nhiều loại sản phẩm sẽ phức tạp thêm nhiều.

Do thời gian có hạn không thể nói tiếp cách quản lý khác sẽ tốt ưu hơn.
Chữ ký của gialilama Xin chào, mình là gialilama, Tham gia http://thuthuataccess.com/forum từ ngày 08-02 -12.
Reply
Những người đã cảm ơn Noname , deephight


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Rainbow [Hỏi] Tạo quan hệ với các bản 9xconduongtoidi 2 297 25-03-16, 10:28 AM
Bài mới nhất: 9xconduongtoidi
  Mong mọi người giúp tạo CSDL Quản lý thiết bị huymcsa 10 658 14-01-16, 04:22 PM
Bài mới nhất: ongke0711
  [Help] Giúp mình cập nhật đơn giá bình quân gia quyền thucgia 31 2,446 24-09-15, 09:41 AM
Bài mới nhất: ongke0711
Wink Tạo dữ liệu quản lý nhân sự theo các loại bằng cấp chứng chỉ xentran2010 18 3,384 29-08-15, 08:14 AM
Bài mới nhất: tranthanhan1962
Tongue Hướng Dẫn Nhờ giúp đỡ quan hệ giữa 2 bảng nam7998 3 566 21-06-15, 04:03 PM
Bài mới nhất: nam7998

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ