我有一个带有表的数据库,其中一列是存储文本数据的“project_stmt”。我已将数据类型设置为 varchar(1000) 但有时使用项目语句的输入文本会超过 100K 个字符,在这种情况下数据不会存储到数据库中,
一个解决方案是使用 BLOB 数据类型,但在这种情况下,我浪费了很多空间,因为“project_stmt”的 80% 用户输入将低于 500 个字符.....所以我想存储用户输入文本'project_stmt' 到第二个表,例如分配数据链接,,,,我该怎么做
CREATE TABLE projects (user_id int(11),
project_id int(11) NOT NULL AUTO_INCREMENT,
project_title varchar(25) NOT NULL,
project_stmt varchar(1000) NOT NULL,
PRIMARY KEY (`project_id`),
FOREIGN KEY (`user_id`) REFERENCES `user_info` (`user_id`)
);
最佳答案
创建一个新表。
CREATE TABLE projects_blob (project_blob_id int(11) NOT NULL AUTO_INCREMENT,
project_id int(11),
project_stmt blob NOT NULL,
PRIMARY KEY (`project_blob_id`),
FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`)
);
插入新条目时,检查 project_stmt 长度,如果大于 1000,则在 blob 表中插入。 选择 project_stmt 时,与该表进行左连接,而不是使用 projects.project_stmt
COALESCE(projects_blob.project_stmt, projects.project_stmt) AS project_stmt
应该可以解决问题
关于php - 如何使用 mysql 和 php 将大文本数据存储在带有 id 链接的两个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056213/