我非常绿色的数据库设计,并已被给予一个项目完成作为任务的一部分。
我的问题是,关于表中的价值观,在这个例子中,它与健身俱乐部的设施有关。
假设有多种健身俱乐部可以拥有的设施,如24小时健身房、游泳池、桑拿、儿童游戏室、户外训练场、自行车工作室。我的计划是存储这些,并有一个与每个号码相关的顺序ID号。
如果我将此信息存储在一个表中,是否可以在另一个表的单个行中引用多个ID号?
例如,如果健怡健身俱乐部有4个设施,我可否在列号1、2、5、6下显示与“组态王”有关的“京威”?
干杯
发布于 2019-01-29 08:19:10
虽然有可能有一个单一的排金石和一个列为每个设施,这将是一个糟糕的设计。
最好有一张桌子列出俱乐部。第二张桌子是所有俱乐部所有可能的设施的超集。第三张表显示了每个俱乐部实际上有哪些设施。每对(俱乐部、设施)都有一排,例如(金威,游泳池),(金威,自行车),(金威,桑拿等)。如果另一家俱乐部也有同样的设施,这张桌子上还有另外三排:(Club2,游泳池),(Club2,自行车),(Club2,桑拿)。
如何填充这些表取决于数据源和所选择的特定数据库设计。如果数据来自离线的来源,比如小册子,那就别无选择,只能在三个表中的每一个中输入数据。如果源是数字的,它可以以- is方式加载到一次性的暂存表中。然后将适当的部分复制到三个数据表中的每一个。最后,可以删除暂存表。
最终设计可以部署自然键或代理密钥。使用第三个自然键,链接表就会像上面所示的那样出现。实际字符串“组态王”和实际字符串“池”将在链接表中。使用代理键,必须首先加载俱乐部表和设施表,以便在列club_name和club_id中的值之间以及facility_name和facility_id之间创建配对。然后,可以用正确的(club_id, facility_id)对填充链接表。这可能需要将分期表加入到俱乐部和设施表中。
https://dba.stackexchange.com/questions/228315
复制相似问题