我有两个动态实体。例如 B1,B2,B3,B4,B5,...我不知道有多少B' si但我会在每个B的SQL中有一个特定的表。另一方面我有一个动态的数量A表示在表AEnum中的单行。
现在我想要一个映射。映射看起来像这样: 每个a可以具有B的每个实体或不具有> 1/0 =>布尔值。
例如:
A1 => B1 (true), B2 (true), B3 (false), B4 (true)...
A2 => B1 (true), B2 (false), B3 (false), B4 (true)...
A3 => B1 (false), B2 (true), B3 (true), B4 (true)...
因此,对于每个B,我在表AHasB中创建了一个名为B的列,只需存储一个tinyint。然而,这不是很有活力。我希望尽可能让它变得动态。
可能的想法: 表BEnum存储Bid和BName(B&#39实例的表名),AEnum保持相同只是存储每个A的东西的行数。然后AHasB看起来像:
A1 => "B1, B4, B12"
A2 => "B9, B10"
只需将其存储为我在逻辑方面解析的单个字符串,而不是持久性方面。通过该解决方案,情况如下:
我认为这将是最具活力的方法。或者有没有更好的方法将其保存在SQL数据库中?
如果有人问:B1,B2,B3,......都是完全不同的表的名称。例如:汽车,爱好者等A1,A2,A3,是人和关系可以读作"对于X人我想知道他有哪些爱好,他开什么车等等#34 ;
有人有更好的想法吗?
答案 0 :(得分:0)
通常,您可以将任何实体集之间的关系表示为包含每个实体集的列的表。例如:
persons (person PK, name, age, ...)
cars (car PK, make, model, ...)
car_owners (person PK/FK, car PK/FK)
在car_owners中,包括PK中的两列确保该对是唯一的,意味着多对多关系。将PK限制为该列中的一个或其他均值实体必须是唯一的,因此是一对多的关系。