做了一点数据库设计和开发,现在我在处理大量数据;需要可扩展性,我也希望尽可能减少重复。
在很高的水平上
顶级表:此表包含唯一信息;例如,房屋地址。
下一页:表包含特定于第一个的数据。特定于房子的房间的详细信息。例如,它有多少墙,或地板大小等。
下一页:表格包含有关人员的详细信息,以及他们所在的房间。例如,当人员在房间内时。我想这是一个进入房间类型表。
下一页:表格是与人交互的房间内的东西(例如沙发)。
最后:这个人在房间里做了什么动作。
我的问题是,什么级别的索引是不必要的,还是没有必要索引而不是复制?
Houses Table -> Rooms Table -> Enters Room Table -> Thing Table -> Interaction Table
当然,人也有关于它的详细信息
Enters Room Table -> Person
人也有关于它的细节。这是我得到 iffy
的地方Person: Nationality -> Nationality Table
Person: Name -> Name Table
Person: *Potentially Replicable Piece of Data* -> Subsequent table
似乎更有效的是替换可复制数据而不是例如人年龄(2位数),而不是拥有一个包含“爱尔兰”字样的大量实例的数据库。而不仅仅是#'
这方面有不好的一面吗?或者这是一个好习惯吗?
提前致谢