【发布时间】:2022-01-12 13:26:18
【问题描述】:
假设我有一个足球队表,其中球员姓名与位置相关联:
teamId: 1
goalkeeper: 'Marc'
position1: 'John'
position2: 'Erik'
...
但现在我还想要一个属性来代表不考虑位置的玩家。我将创建一个新属性 teamString 序列化所有按字母顺序排序的玩家(这将确保具有相同玩家的不同 Teams 将具有相同的 teamString 属性):
teamString: Eric-John-Mark[...]
现在我可以过滤Teams 与相同的球员,即使他们在不同的位置上比赛。
这个新属性teamString会违反1NF原则吗?
提前致谢
【问题讨论】:
-
只是为了确保我理解:您希望能够获得每支球队的球员名单,无论他们的位置如何?
-
没错,有时同一个玩家可能会被放在不同的位置。有时我需要根据球员的位置来寻找球队。
-
不要存储
Eric-John-Mark,而是使用GROUP_CONCAT()计算它。 -
"1NF" has many meanings. (所有这些都涉及用一些表用参数化结构替换一些表,每个参数有一列。)“非规范化”和“UNF”和“0NF”&就此而言也是如此“关系”。因此,您需要告诉我们您的定义,最好还告诉我们教科书名称和版本。你是怎么被困在告诉你是否违反了你选择的“1NF”的?
标签: mysql sql database-design database-normalization