Rob*_*ert 5 mysql database oracle postgresql database-design
我正计划建立一些数据库项目.
其中一个表有很多属性.
我的问题是:什么更好,将类划分为2个单独的表或将所有表分成一个表.下面是一个例子
create table User { id, name, surname,... show_name, show_photos, ...)
Run Code Online (Sandbox Code Playgroud)
要么
create table User { id, name, surname,... )
create table UserPrivacy {usr_id, show_name, show_photos, ...)
Run Code Online (Sandbox Code Playgroud)
我认为性能相似,因为我可以使用索引.
n8w*_*wrl -2
我会建议一些不同的东西。将来您可能会被要求管理“另一个属性”。您可以只向属性表添加一行,而不是添加一列:
TABLE Attribute
(
ID
Name
)
TABLE User
(
ID
...
)
TABLE UserAttributes
(
UserID FK Users.ID
Attribute FK Attributes.ID
Value...
)
Run Code Online (Sandbox Code Playgroud)
大家的评价都很好。我的回答应该更清楚。
我们这样做是为了处理特殊情况,即客户要求我们以某种方式为他们定制我们的网站。我们从不将 NVP '旋转' 到查询中的列 - 我们总是在查询“我应该在这里这样做吗?” 通过查找为客户列出的特定属性。如果存在,那就是“真实”。因此,与其让这些是大量的布尔列(其中大多数对于大多数客户来说都是 false 或 NULL),而且这些功能的数量有增加的趋势,这对我们来说很有效。
归档时间: |
|
查看次数: |
353 次 |
最近记录: |