Ich habe zwei Entitäten in meiner Datenbank, die beide Adressen benötigen. Kunden können mehrere Adressen haben. Restaurants können für jede ID eine Adresse haben. Wie soll ich die Beziehungen organisieren? Ich habe derzeit die Adressentabelle, die auf den Benutzer verweist, zu dem es gehört, aber es kann auch zu einem Restaurant gehören.Gemeinsame Nutzung der Adresstabelle mit zwei Entitäten
Adresse:
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;
Benutzer:
CREATE TABLE IF NOT EXISTS grabatakeaway.user (
`username` varchar(32) NOT NULL PRIMARY KEY,
`password` varchar(128) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Restaurant:
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;
Wie wäre es mit einem Restaurant? Gleiche Sache? –
ja, das Gleiche. Dies schafft eine Viele-zu-Viele-Beziehung und ermöglicht es, dass die Rückstände auch viele Adressen haben. Wenn Sie es nicht benötigen, behalten Sie die aktuelle Struktur dafür bei. – e4c5
Großartig, danke! Ich werde weitermachen und dies umsetzen. Wenn alles gut ist, werde ich das als beantwortet markieren, Prost! –