![](/img/trans.png)
[英](database design,mysql) Is my database design good for basic shopping cart?(I new in database design)
[英]MySQL database basic design
我有3个实体:
而且我不知道如何外键表之间的关系。
建筑物位于地址处。 活动在地址处执行(一次一个地址)。
但是我只想要一个地址表。
假设以下属性:
建筑物(标识,电话,电子邮件,图像,评论)<-我应该输入address_id吗? 活动(标识,说明)<-我应该输入address_id吗?
地址(id,街道,城市,州,邮政编码)<-还是应该在此处放置center_id和activity_id?
先感谢您!
您应该在建筑物和活动表中都使用address_id 。
地址是唯一的,而许多建筑物和许多活动可以位于同一地址!
您的问题意味着多个建筑物可以位于同一地址-这是您想要的吗? 如果是这样,请相应地对其进行规范化:
Address
是您的“根实体”:
ADDRESS(address_id,street,city,state,postcode)
Building
可以恰好位于一个Address
,因此请包含对Address
的引用(外键):
BUILDING(building_id,phone,email,image,comments,address_id)
活动仅在一个地址处执行,通过外键引用Address
:
ACTIVITY_ID(activity_id,description,address_id)
也许您应该考虑是否:
ADDRESS
表(请参阅上面的问题)吗? Alex,正如您在问题中所说,您应该在两个表中都具有ID。 不需要将它们放在单独的表中,因为实际上建筑物的地址将是执行活动的地方,对吗?
如果您担心两座建筑物的位置相同,请在建筑物表的address_id列中添加uniq索引。
向前移动一点。 你能没有建筑物的地址吗? 如果是这种情况,那么您甚至可以将地址数据(列)添加到建筑物表中。 因为这是一对一的关系,除了建筑物外,其他任何实体都不需要使用地址表。 这样,您将摆脱地址表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.