尼爾N表示,如果您通過外鍵引用表B中的表A,則不應在兩個位置都有列。
你的描述聽起來有點像平行於面向對象編程中的繼承。就我個人而言,在這種情況下,我沒有使用任何特定的命名約定。我名字是什麼,我叫B它是什麼。例如,我可能有:
CREATE TABLE People
(
people_id INT NOT NULL,
first_name VARCHAR(40) NOT NULL,
last_name VARCHAR(40) NOT NULL,
...
CONSTRAINT PK_People PRIMARY KEY CLUSTERED (people_id)
)
GO
CREATE TABLE My_Application_Users
(
people_id INT NOT NULL,
user_name VARCHAR(20) NOT NULL,
security_level INT NOT NULL,
CONSTRAINT PK_My_Application_Users PRIMARY KEY CLUSTERED (people_id),
CONSTRAINT UI_My_Application_Users_user_name UNIQUE (user_name)
)
GO
這僅僅是一個例子,所以請不要告訴我,我的名字列過長或過短,或者他們應該允許空值,等等;)
我們可以得到一個真實的例子,說明在重構之前和之後A和B會是什麼樣子? – 2009-12-31 19:14:23
沒有重構,因此沒有之前或之後。 :)我只是要求設計的名稱,特別是與'a'有關的'b'。 – Kev 2009-12-31 19:22:46