我的數據庫有一個表跟蹤部門和用戶ID。這裏的結論是,儘管department和user_id列可以有重複,但它們的組合不能。這就是說,雙主鍵設計
DepartmentA 0001
DepartmentA 0002
DepartmentB 0001
DepartmentB 0002
是我的表中的有效數據。但
DepartmentA 0001
DepartmentA 0001
是不有效。
部門和user_id的組合形成記錄的唯一標識符。在另一個表中,我需要使用這個唯一的標識符來跟蹤用戶的活動,比如他們進入建築物的時間,他們離開建築物的時間等。
我在想的是我創建了下列表格
CREATE TABLE user (
user_id INT(4),
department VARCHAR(25) NOT NULL ,
combined_id int(4) ,
UNIQUE (combined_id) ,
Primary key(user_id, department)
);
CREATE TABLE user_activity(
combined_id int(4),
activity varchar(25),
Foreign Key (combined_id) references user(combined_id)
);
所以我想爲我的目的使用雙主鍵。這是恕我直言,是保證數據完整性的最佳方式。但是根據我所知,使用雙主鍵可能很難與ORM一起使用,即它們不完全支持,並且必須爲其編寫定製查詢。
鑑於我的情況,上述設計是否最好?
什麼是平臺? – 2009-02-03 11:59:27
其中ORM?這比數據庫更有可能重要。 – 2009-02-03 12:02:55
Propel和ADO.Net實體框架 – Graviton 2009-02-03 12:05:24