我最近读了一条推文,建议如果要避免在将来的应用程序中头疼,则应该让用户表仅包含身份验证信息,而用户表则包含其他所有内容。也就是说,如果系统中有自行车和桃子,则应通过用户个人资料ID将其链接到拥有它们的用户。该推文尚不清楚使用用户个人资料的后果。是否存在维护性/可扩展性的后果,尤其是在大型Web应用程序中不遵循此准则?
答案 0 :(得分:1)
好吧,尽管它并非完全没有价值,但不要把它当作教条。依赖性是一个问题:如果您必须拥有许多代表特定用户的不同数据,则将经常更改基础数据库。如果所有内容都存储在单个列中,则您可能会发现自己在使用类型/ ORM和DB <-> RUNTIME通信中不涉及“使它起作用”的重复性猴子工作。
这完全是将复杂的任务分解为较小的,不太复杂的子任务:auth是独立的(最重要的任务之一),它本身就是任务,它肯定值得一些专用空间。但是,您的应用程序可能没有那么大,或者与用户无关,因此将数据分成多个列不会很有帮助。您必须对目的有深刻的了解,并在将其归结为软件设计时加以衡量。