通常最好繪製出你的關係,以便更容易理解這兩個實體之間的關係。這將讓你輕鬆地說這是一對一,多對一,一對多或多對多等。
這就是說,一旦你知道了這一點,它設置起來微不足道。
如果您使用的是Java或.Net,您可以使用Hibernate/NHibernate通過指定關係自動爲您創建表。
這裏是我會從你勾勒出什麼樣的設計表: (請記住,這是Java命名架構以下)
MemberType
id (int11, auto increment, primary key)
name (varchar31, unique)
One note about MemberType, if you're using Java and you will not dynamically add/remove member types, you should use an enum here.
Member
id (int11, auto increment, primary key)
memberType_id (int11, on update cascade, on delete cascade)
Organization
id (int11, auto increment, primary key)
name (varchar31, unique)
-- Depends on how you want this structured (I would design it as a many-to-many relationship
MemberOrganization
member_id (int11, on update cascade, on delete cascade, this links to the member id)
organization_id (int11, on update cascade, on delete cascade, this links to the organization id)
要獲得一個特定組織的所有成員名單...
SELECT
*
FROM
Organization o
INNER JOIN MemberOrganization mo ON mo.organization_id = o.id
INNER JOIN Member m ON m.id = mo.member_id
WHERE
o.name = 'StackOverFlow.com'
再次查看您的問題後,我認爲您正在尋找不同的答案。
沃爾特