1
私はデータベースに、アドレスを必要とする2つのエンティティを持っています。顧客は複数のアドレスを持つことができます。レストランでは、IDごとに1つの住所を持つことができます。関係をどのように整理すればよいですか?私は現在、それが所属するユーザを参照するアドレステーブルを持っていますが、レストランにも属しています。2つのエンティティを持つアドレステーブルを共有する
住所:
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
よかった、ありがとう!私は先に進んでこれを実装します。すべてが良いなら、私はこれを答えたようにマークします、歓声! –