我在MySQL中有一个消息表,用于在用户之间记录消息.除了典型的id和消息类型(所有整数类型),我需要将实际的消息文本保存为VARCHAR或TEXT.我设置的前端限制为3000个字符,这意味着消息永远不会插入到数据库中,因为它比这更长.
是否有理由使用VARCHAR(3000)或TEXT?有一些关于编写VARCHAR(3000)的东西,感觉有点违反直觉.我已经浏览了Stack Overflow上的其他类似帖子,但是能够获得特定于此类公共消息存储的视图.
根据定义:
VARCHAR:Length的范围是1到255个字符.除非给出BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较.x + 1个字节
TINYBLOB,TINYTEXT:BLOB或TEXT列,最大长度为255(2 ^ 8 - 1)个字符x + 1个字节
基于此,我创建了下表:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255),
`lastname` tinytext,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
或者创建varchar或tinytext更好,为什么?
它是否相同:
VARCHAR:长度范围> 255个字符.除非给出BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较.x + 2个字节
BLOB,TEXT BLOB或TEXT列,最大长度为65535(2 ^ 16 - 1)个字符x + 2个字节
这个问题基于两个方面的性能和规模
哪个DATATYPE最好使用TEXT或VARCHAR?基于将影响和将影响的表现?
本地我使用mysql,所以当我使用
@Column(columnDefinition = "TEXT")
Run Code Online (Sandbox Code Playgroud)
不幸的是,应用程序也必须在不同的数据库中运行,我还没有被告知哪些只是"根本".
是否可以制作具有类似效果的东西,但是在大多数数据库中工作?我怎样才能实现它?
我开始创建一个系统,我(作为目前唯一的用户)将加载一个动态创建的PHP页面,其中包含一个<table>.然后,我将抓取其中的HTML <table>并将其保存以显示给网站的单独区域中的其他用户.
我的问题:这类事情要遵循哪些最佳做法?在MySQL中将HTML保存为TEXT或LONGTEXT?BLOB?甚至可能将这些数据保存为.txt文件,该文件使用PHP include()将其包含在向用户显示的文件中?
我不太确定这种事情的最佳方法,因此也是一堆问题.我对创建数据库也不太熟悉,因此,我不了解他们的优点/缺点.它看起来像使用的是MySQL数据库,这是要走的路,但我不结婚了.
注意#1:HTML 必须完整保留.所以类似的东西<div>Let's use blue for this.</div>最终不会出现<div>Let\'s use blue for this.</div>.
注意#2:我保存的表每次都是随机生成的(包括行数/列数).所以,我需要表格中的所有数据,包括所有数据<tr>和<td>'s.