tôi hy vọng bạn có thể giúp tôi ở đây - tôi có một câu hỏi về việc thiết kế một bảng SQL. Tôi biết cách viết vào một cơ sở dữ liệu và thực hiện các truy vấn bằng C#, nhưng tôi chưa bao giờ thực sự phải thiết kế một. Vì vậy, tôi nghĩ rằng tôi sẽ cho nó một shot chỉ quan tâm của chúng tôi.Thiết kế bảng cho SQL
Giả sử tôi có bảng có tên family_surname. Trong bảng đó, có thể có x số lượng family_members, nói rằng từ 2 người đến 22 người. Làm cách nào tôi có thể tham chiếu family_members với family_surname?
Vì vậy, tôi sẽ phải GIA ĐÌNH HỌ Smith, Jones, Nâu, Taylor, , vv
Và sau đó Smith có thể có 5 thành viên, đến nơi mà tôi muốn ghi lại tuổi, chiều cao, cân nặng , bất cứ điều gì. Jones có thể có 8 thành viên - nó có thể khác nhau giữa các gia đình.
Tôi không thực sự muốn họ được liệt kê 8 lần cho mỗi thành viên - lý tưởng là hàng họ sẽ tham chiếu (hoặc bằng cách nào đó trỏ tới) một hàng tương ứng trong bảng khác. Và đó là nơi tôi gặp rắc rối!
Tôi hy vọng tôi có ý nghĩa; như tôi nói, im chỉ quan tâm, nhưng tôi muốn biết làm thế nào để làm điều này với hai bảng.
Dù sao, cảm ơn sự giúp đỡ của bạn, tôi đánh giá cao điều đó.
EDIT Cảm ơn bạn đã từng nhận xét - chắc chắn là một số thông tin hữu ích ở đây, mà tôi đánh giá cao. Im đọc và nghiên cứu một số bit và các bit SQL, và cho đến nay nó khá tốt. Cảm ơn một lần nữa, các bạn!
Bạn có lẽ nên đọc về bình thường hóa cơ sở dữ liệu: http://en.wikipedia.org/wiki/Database_normalization –
Điều gì sẽ xảy ra nếu một trong các thành viên trong gia đình bạn muốn thay đổi họ? Giống như ly dị? Nếu một thực thể sở hữu một thuộc tính độc quyền, tôi sẽ không bình thường hóa nó và đưa vào bảng riêng biệt. –
@val là một điểm hợp lệ nhưng có thể nằm ngoài phạm vi của câu hỏi; OP chỉ yêu cầu làm thế nào để đại diện cho một danh sách các cặp tên/họ đã cho mà không cần sao chép họ. Cho dù đó là thích hợp sẽ phụ thuộc vào ứng dụng. – gcbenison