我有一个重要的问题所以我搜索并发现了类似的问题,阅读它们并找不到合理的理由 . 所以在评论中问道,没有人回答我 . 因此,我很抱歉,如果这是重复的,我会自己写两个重复发现,但如果可以,请帮助 .

这是我发现的两个类似的问题,但没有帮助我:

我在SQL Server数据库中有很多(大约200个)表,我需要一些属性(大约50个) . 我知道多对多关系的正确方法是创建一个新表,但问题是我不知道任何表可能需要的属性的确切数量 . 我首先为属性类型创建两个表,为属性值创建第二个表 . 然后考虑创建需要多对多关系的40个表,以及目前我的数据库中大约240个表,并且在明年无法猜测数据库大小 . 你可能会认为数据库设计在一周,但事实并非如此,只是系统是巨大的 . 最后,我决定在第一个和第二个表中存储属性项,就像每个表中的附加列中的逗号分隔字符串一样,并且添加超过40个新表 .

我知道在应用程序端需要解释和解析成本,并且在查询中可能会有些麻烦 . 另外,我编写了一个函数,用逗号分隔字符串和返回表格中的一列,当我想在此字符串中搜索某些内容时,请使用函数结果中的IN运算符,但重要的问题是我发现这不是使用此方法的规范化数据库 . 这是错误的方式吗?感谢任何帮助 .