MYSQL-如何存储一定数量的数据列表?存储也仅限于此数量
我想为一个文件存储成员的数据(0到5000之间),直到某个数字 到目前为止,我存储了9个成员,为此,我创建了单独的列。通过这样做,我可以连接不同的表 您可以清楚地看到这里有许多值为空。如果一个文件有5000个成员,那么创建这么多的列可能会很困难,而且很多值都是空的MYSQL-如何存储一定数量的数据列表?存储也仅限于此数量,mysql,sql,Mysql,Sql,我想为一个文件存储成员的数据(0到5000之间),直到某个数字 到目前为止,我存储了9个成员,为此,我创建了单独的列。通过这样做,我可以连接不同的表 您可以清楚地看到这里有许多值为空。如果一个文件有5000个成员,那么创建这么多的列可能会很困难,而且很多值都是空的 如何将这些数据存储到MYSQl中的某个数字(在本例中为5000)。另外,存储限制在该数量,我也应该能够根据这些数据的外键联接表。这回答了问题的原始版本 正确的存储方法是使用不同的表: 请注意,notnull在主键上是多余的,主键声明
如何将这些数据存储到MYSQl中的某个数字(在本例中为5000)。另外,存储限制在该数量,我也应该能够根据这些数据的外键联接表。这回答了问题的原始版本 正确的存储方法是使用不同的表:
请注意,
notnull
在主键上是多余的,主键声明可以是内联的。Pro提示:如果您正在设计一个数据库,并且您发现自己在想“当我有更多用户时,我必须向这个表中添加列”,请停止!当您的应用程序中有数量可变的内容时,您几乎总是将它们放在行中,而不是列中。@O.Jones谢谢,您的提示肯定会对我未来的数据库设计有所帮助。由于问题重复,我在问题中添加了更具体的细节。你能检查一下吗?@kallis。正确的做法是问一个新问题。修改问题并使答案无效是不礼貌的。
CREATE TABLE file (
file_id INT NOT NULL AUTO_INCREMENT,
file_name VARCHAR(50) NOT NULL,
file_admin INT NOT NULL,
member1 INT,
member2 INT,
member3 INT,
member4 INT,
member5 INT,
member6 INT,
member7 INT,
member8 INT,
member9 INT,
PRIMARY KEY (file_id),
FOREIGN KEY (file_admin) REFERENCES users(user_id),
FOREIGN KEY (member1) REFERENCES users(user_id),
FOREIGN KEY (member2) REFERENCES users(user_id),
FOREIGN KEY (member3) REFERENCES users(user_id),
FOREIGN KEY (member4) REFERENCES users(user_id),
FOREIGN KEY (member5) REFERENCES users(user_id),
FOREIGN KEY (member6) REFERENCES users(user_id),
FOREIGN KEY (member7) REFERENCES users(user_id),
FOREIGN KEY (member8) REFERENCES users(user_id),
FOREIGN KEY (member9) REFERENCES users(user_id)
);
CREATE TABLE files (
file_id INT AUTO_INCREMENT PRIMARY KEY,
file_name VARCHAR(50) NOT NULL,
file_admin INT NOT NULL
);
CREATE TABLE file_members (
file_member_id INT AUTO_INCREMENT PRIMARY KEY,
file_id INT NOT NULL
member_id INT NOT NULL,
FOREIGN KEY (file_id) REFERENCES files(file_id),
FOREIGN KEY (member_id) REFERENCES users(user_id),
UNIQUE (file_id, member_id)
);