我创建了一个包含三个表的数据库:
Restaurant
restaurant_id (autoincrement, PK)
Owner
owner_id (autoincrement, PK)
restaurant_id (FK to Restaurant)
Deal
deal_id (autoincrement)
owner_id (FK to Owner)
restaurant_id (FK to Restaurant)
(PK: deal_id, owner_id, restaurant_id)
每个餐厅可以有多个所有者。我为 Deal 选择了两个外键,因此我可以通过所有者或餐厅来引用该交易。交易表将有三个主键,两个是外键。它会有两个指向它的一对多关系。我所有的外键都是主键,我不知道我以后会不会后悔这样做。这种设计是否有意义,并且看起来对我想要实现的目标有好处?
编辑:我真正需要在这里完成的是当所有者登录并查看他们的帐户时,我希望他们能够查看和编辑与该特定餐厅关联的所有交易。而且因为每个餐厅可以有多个所有者,所以我需要能够执行类似的查询:select *from Deals where restaurant_id = restaurant_id。换句话说,如果我是所有者并且我已登录,我需要能够进行查询:获取不仅与我(所有者)相关的所有交易,而且与与关联的所有所有者相关的所有交易这家餐厅。