假设我有一张table lawareas
法律领域,如:
ID Area
1 Children Law
2 EU law
3 Crime
还有律师,但是每个律师可以被分配多个法律领域,所以这个表是这样的
ID Name Areas
1 John 1,3
2 Bob 2,3
我现在是这样做的,但似乎不对。
有没有更好的方法来组织这些数据?
我想我可以有第三个表,上面两个表之间有关系,比如:
AreaID LawyerID
1 1
3 1
2 2
3 2
哪一个更好,为什么原来的选择似乎少麻烦我在各个方面?
1条答案
按热度按时间b1uwtaje1#
在第一种解决方案中,通过字符串连接来表达数据语义。这有严重的缺点:
查询数据会很麻烦(例如,让所有执行犯罪法的律师)
添加和删除区域很麻烦(因为必须进行字符串解析和连接)
您必须自己注意数据的一致性(例如,所有区域ID必须存在于区域表中)
基本上,除了一般的数据存储和检索之外,您将失去dbms提供的所有功能。您将得到可怕的应用程序代码,重新实现此功能、糟糕的性能和最可能的数据不一致。
让数据库做它能为您做的,但是您必须满足它的结构需求。