0

我有 2 个创建 SQL 结构的选项

例如,我需要列CodeNameReligion

选项1 :

+=======+========+=============+
+ Code  + Name   + Religion_id +
+=======+========+=============+
+ 1     + A      +  1          +
+ 2     + B      +  2          +
+ 3     + c      +  2          +
+=======+========+=============+

+=============+===============+
+ Religion_id + religion_name +
+=============+===============+
+  1          + Caaaaaa       +
+  2          + Daaaaaa       +
+=============+===============+

选项 2:

+=======+========+
+ Code  + Name   +
+=======+========+   For Master File
+ 1     + A      +
+ 2     + B      +
+ 2     + C      + 
+=======+========+

+=============+===============+
+ Religion_id + religion_name +
+=============+===============+    For Master File
+  1          + Caaaaaa       +
+  2          + Daaaaaa       +
+=============+===============+

+=======+=============+
+ Code  + Religion_id +
+=======+=============+    For Transaction File
+ 1     +  1          +
+ 2     +  2          +
+ 3     +  2          +
+=======+=============+

我已经做了大约 1 年的数据库。

但是在大学学习之后,我了解到主文件中不能有重复的数据。

选项 1中有一个重复的值,例如 2 个人具有相同的宗教。所以他们创建了类似于Option 2的结构。

但是 IMO选项 2会比选项 1占用大量内存空间,包含一千条记录。

我的问题是:哪一个是创建 SQL 结构的最佳实践?

编辑:1个名字只能有1个宗教

4

1 回答 1

3

这取决于两个表之间的关系。

选项 1 是一个One-to-many关系,其中Religion可以包含许多Names. 但是,如果关系是Many-to-Many,其中某个Name可以有多个Religions,并且该宗教可以有多个Name,请选择选项 2,因为它使用关联表。

于 2013-04-12T09:08:11.727 回答