【发布时间】:2020-03-19 07:36:07
【问题描述】:
我有一个 feature_values 表,其中包含用户存储的数据:他们可以编辑和更新此表。
user_feature_values
user | year | quarter | gdp | other
---------------------------------------
1 2018 Q1 1.5 1.2
1 2018 Q2 1.6 1.5
5 2017 Q1 -1.2 1.0
.......................................
.............
4 2017 Q4 1.0 2.5
还有另一个类似的表存储默认值。用户无法编辑此内容。
default_feature_values
country | year | quarter | gdp | other
---------------------------------------
5 2018 Q1 1.8 2.0
10 2015 Q2 1.4 1.2
120 2017 Q3 -1.2 1.0
.......................................
.............
115 2016 Q4 1.5 2.15
当前情况:
创建用户后,我会根据用户所在的国家/地区将默认值复制到user_feature_values。这样他们就可以使用自己的值编辑表中的默认值。稍后,他们可以选择默认值;从default_feature_values 表复制到user_feature_values 表。
这是一个糟糕的设计吗?
这可以实现多少?
【问题讨论】:
-
以
#作为第一个字符的命名表似乎是一个糟糕的选择(尽管我无法真正解释为什么我有这种偏见)。也就是说,我无法弄清楚问题在问什么。它是否要求对设计提出意见?或者它是在寻求一种实现功能的方法。第一个建议出于一个原因关闭;第二个换另一个。 -
@GordonLinoff 不,我没有这样命名它们。我只是使用
#来区分表和实际的 feature_values 来解释场景。我正在征求对设计的意见,以及是否可以以更好的方式实施。 -
。 .而“基于意见”是关闭问题的第五个关闭原因(根据您的观点,我假设您知道)。你可以用不同的方式表达一个类似的问题——例如,基于性能。我想说这种设计有一个差距——用户可能想“记住”他们的价值观并回到他们身边,但你的设计不支持这一点。
-
要添加到@GordonLinoff 的评论中,这是“基于意见的”,我非常同意这一点,,,乍一看数据的样子以及你所说的我很可能会去一个表
feature_values(带有默认列值)和一个feature_values_permission表,用户可以编辑,哪些不可以编辑feature_valuesid。 -
一个用户可以在多个国家吗?那么,
user...表不需要country列吗?
标签: mysql sql database design-patterns database-design