2010-02-27 43 views
5

Tôi có bảng MySQL sau ..Thực hiện một lĩnh vực độc đáo tùy thuộc vào một lĩnh vực

userid - foreign key 
date - primary key 
slot1 - 1st free slot 
slot2 - 2nd free slot 
slot3 - 3rd free slot 
slot4 - 4th free slot 
slot5 - 5th free slot 
slot6 - 6th free slot 
slot7 - 7th free slot 
slot8 - 8th free slot 

Tất cả các khe là cho cùng một ngày, vì vậy người dùng có thể nhập vào thời điểm khác nhau trong ngày rằng ông là miễn phí.

Bây giờ tôi đã làm điều này và nó đã hoạt động và bây giờ tôi vấp phải một vấn đề. Tôi đã nhập một số dữ liệu cho một người dùng và bây giờ khi tôi cố gắng nhập dữ liệu cho người dùng khác cho cùng một ngày tôi không thể vì nó nói rằng nó đã tồn tại.

Làm cách nào để tôi có thể có cùng một người dùng nhập nhiều ngày và người dùng khác cũng nhập cùng ngày? ... Nhưng cùng một người dùng không thể nhập cùng một ngày hai lần ... được làm?

Trả lời

4

Bạn có thể muốn sử dụng tổng hợp PRIMARY KEY trên user_iddate.

Bạn cũng có thể sử dụng unique key làm Quassnoi suggested, nhưng nó thực sự trông giống như trường date của bạn không phải là candidate for a primary key hợp lệ.

3
ALTER TABLE mytable ADD CONSTRAINT ux_mytable_user_date UNIQUE KEY (user, date) 

Bạn nên thả bạn PRIMARY KEY trên date.

Bạn có thể tạo một tài khoản trên user_id, date (như Daniel Vassallo đề xuất), hoặc nếu bạn cần tham khảo bảng này, hãy tạo một thay thế PRIMARY KEY (ví dụ: với cột AUTO_INCREMENT).

+0

nếu u không phiền bạn có thể giải thích điều này nhiều hơn một chút ??? tôi không hiểu chính xác wat uve đã nói ở đây ... –

+0

@ananworks: Kiểm tra điều này: http://en.wikipedia.org/wiki/Unique_key và điều này: http://help.w3schools.com/sql/sql_unique .asp để giới thiệu cơ bản về các khóa duy nhất. –

+0

thx ... bị bệnh chk và c ... sẽ quay trở lại nếu tôi vẫn cần trợ giúp !! cảm ơn rất nhiều lần nữa !! –

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