Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多个字段条目,最佳方法_Mysql_Sql - Fatal编程技术网

Mysql 多个字段条目,最佳方法

Mysql 多个字段条目,最佳方法,mysql,sql,Mysql,Sql,我有一张名为“事件”的表格,其中一个字段列出了“玩家”,按完成位置排序,即(约翰、比尔、凯尔)分别为第一、第二和第三 这是存储这些信息的好格式吗?我一直在尝试阅读关于规范化的文章,但不确定是否应该寻找一种不同的方法 此外,我以后如何检索这些信息?我希望能够转到“比尔”的个人资料,查看他排名第一的所有事件 Thnaks您应该有3个表: 用户(id、名称) 事件(id、名称) users2events(id\u用户、id\u事件、地点) 然后搜索比尔的第一个位置很简单- Select * fr

我有一张名为“事件”的表格,其中一个字段列出了“玩家”,按完成位置排序,即(约翰、比尔、凯尔)分别为第一、第二和第三

这是存储这些信息的好格式吗?我一直在尝试阅读关于规范化的文章,但不确定是否应该寻找一种不同的方法

此外,我以后如何检索这些信息?我希望能够转到“比尔”的个人资料,查看他排名第一的所有事件


Thnaks

您应该有3个表:

  • 用户(id、名称)
  • 事件(id、名称)
  • users2events(id\u用户、id\u事件、地点)
然后搜索比尔的第一个位置很简单-

 Select * from 
 users2events where 
 id_user=(select id from users where name='bill') and place=1;

听上去,您应该将数据组织在名为
EVENTS
PEOPLE
的表格中。然后通过名为
参赛者
的表格将人们链接到活动。然后,您可以将放置信息存储在
参赛者
表中。非常感谢您的回复。你能再详细说明一下吗?我将在“事件”中有一个存储“参赛者ID”的字段,在“参赛者”中我可以有1st=“Bill”正确吗?不,您将事件ID和人员ID作为主键存储在
参赛者
表中,然后存储其他字段(例如
放置
未完成
,等等)。请仔细阅读如何在关系数据库中形成多对多关系。这是一个愚蠢的问题,但对于用户来说,拥有ID重要吗?或者我可以在那里只知道他的名字。那么对USERS2EVENTS也这样做是否重要?@Wilson“那么对USERS2EVENTS也这样做是否重要?”-不,因为USERS&EVENTS存储一般信息,USERS2EVENTS存储它们之间的关系-对吗?@Wilson,这不是一个愚蠢的问题。你必须应付两个同名的人。id字段只是解决方案的一部分。您可能需要另一个唯一标识符,如电子邮件地址。