我正在尝试确定用于存储Employee数据的DB表的结构。我对如何设计地址,社交媒体等属性感到困惑。应该为单个员工记录提供多个社交媒体条目(例如:Facebook,Twitter,LinkedIn等)。
哪一个是好的设计:
为这些属性创建单独的表是否过分?属性“社交媒体”只是一个例子,我们将在employee表中有许多属性,这些属性将包含1到4个条目(例如:电话号码,地址,电子邮件地址)
由于
答案 0 :(得分:1)
在NoSQL DataBase中,我选择2。 在关系模式中,我认为选项1更好。如果你想添加一个新的社交媒体(Instagram f.i.),它将只是社交媒体表中的另一个条目。但是,如果您在Person中添加社交媒体,则需要在表格中添加新列。
答案 1 :(得分:1)
两种解决方案都有效。
不为SocialMedia信息创建单独的表的主要缺点是需要在Employee
表中为每个将来存在的新社交媒体类型添加新列。当应用程序已经投入生产时,对数据库模式进行更改通常会有点痛苦。
所以,记住这一点,我建议创建一个单独的SocialMedia表,它将具有以下结构:
| SocialMedia | username | employeeId |
其中employeeId
列将是Employee
表