我目前正在为一家保险公司进行数据库设计。示例实体是“客户”、“地址”、“车辆”、“建筑物”等。所以有很多关系,每个关系都有一些上下文。例如,客户车辆:客户可以是车辆的所有者、司机、承租人……基本上我看到两种处理方式:
(1):每个关系的连接表,带有两个外键和一个上下文 ID。这将导致许多联结表,其中部分数据很少。由于表的数量,选择会有点困难。
(2):整个数据库的一个连接表。该表将包含两个外键,一个是关于它是什么关系的键(例如客户-车辆)和一个用于上下文的键。这将导致一个巨大的连接表,但也更简单的选择。
哪个是更好的解决方案?有什么主要的优点/缺点,甚至是我没有想到的其他解决方案吗?
感谢您的帮助。如果我表达的不够清楚或有什么不明白的地方,请提问。(英语不是我的母语)
第一个解决方案是最好的。