1
我的數據庫中有兩個實體都需要地址。客戶可以擁有多個地址。餐廳可以爲每個ID設置一個地址。我應該如何組織關係?我目前有地址表引用它所屬的用戶,但它也可以屬於一家餐館。與兩個實體共享地址表
地址:
CREATE TABLE IF NOT EXISTS grabatakeaway.address (
`address_id` int(8) UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
`address` text NOT NULL,
`city` varchar(128) NOT NULL,
`state_province` varchar(128),
`zip_post` varchar(32) NOT NULL,
`username` varchar(32) NOT NULL,
FOREIGN KEY (username) REFERENCES grabatakeaway.user(username)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
用戶:
CREATE TABLE IF NOT EXISTS grabatakeaway.user (
`username` varchar(32) NOT NULL PRIMARY KEY,
`password` varchar(128) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
餐廳:
CREATE TABLE IF NOT EXISTS grabatakeaway.restaurant (
`restaurant_id` int(8) UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
`address_id` int(8) UNSIGNED NOT NULL,
FOREIGN KEY (address_id) REFERENCES grabatakeaway.address(address_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
餐廳怎麼樣?一樣? –
是的,同樣的事情。這創建了多對多的關係,並允許更多的人擁有多個地址。如果你不需要它,請保留它的當前結構。 – e4c5
太好了,謝謝!我會繼續實施這個。如果一切都很好,我會將其標記爲已回答,歡呼! –