0

我不知道如何搜索这个,所以在这里。

我自己的术语是“同步”和“偏离”数据库模式。如果这一切有一个官方术语,我想知道它。

这可能看起来有点愚蠢,但我一直坚持我想去的方向。我是创建数据库模式的新手。我在 Java 应用程序上使用 SQLite,并使用单个 .db 文件在不同的表中包含不同类别的信息。所以第一个表包含accountID/username/password;也许下一个表是 accountID/firstname/lastname/email。随着新功能的实施,我计划在未来添加更多表格。

我在这里遇到问题的决定是......如果用户创建了一个基本帐户,但没有填写其他任何内容 - 我应该为其他表格创建一个空白行吗?或者我不应该添加一行,而是在他们为这些表输入数据时创建行(可能是几个月后)?我希望这是有道理的。

有什么优点/缺点?实施/编程?效率?等等

谢谢

4

1 回答 1

2

IMO,所有单值用户属性都应该驻留在一个表中,即用户表将包含以下列:

  • 帐户ID
  • 用户名
  • 密码
  • 电子邮件

加入用户时,您可以将每个属性指定为强制或可选。可选属性将是数据库中的 NULLable 列。当用户为这些属性指定值时,您只需在表中更新它们。

展望未来,在添加新功能时,如果您碰巧遇到用户的单值属性,则需要更改 users 表并添加默认值为 null 的列。

如果向用户添加新属性的频率太高,那么您可以转向属性表模型,其中每一行将存储用户的一个附加属性。users 表和此 user_attrs 表之间将存在一对多的关系。HTH。

于 2012-12-01T08:04:57.200 回答