你好,我只是想把这个 Mysql 表结构转换成 crateData 表。
以下是与此投票应用程序关联的表格列表。
- 用户(用户详细信息)
- 投票(投票详情)
- 评分(投票评分)
- PollComment(评论属于用户投票)
- FavouritePoll(用户最喜欢的投票列表)
- user_follow(它必须关注的用户)
- 类别(投票所属的类别)
谢谢
你好,我只是想把这个 Mysql 表结构转换成 crateData 表。
以下是与此投票应用程序关联的表格列表。
谢谢
感谢@Bernd Dorn 对您的架构的详细回答:
@Bernd Dorn:您需要做一些不同的事情,不仅是为了板条箱,而且是出于一般性能原因。所以没有关于如何转换模式的一般答案。这里只是一些要点。
通常,您应该为图像等二进制对象创建一个 blob 表(请参阅https://crate.io/docs/stable/blob.html#creating-a-table-for-blobs)并通过摘要引用它们,其中是字符串类型。
数据类型(参见https://crate.io/docs/stable/sql/ddl.html#data-types):对于 varchar* 使用字符串作为日期时间使用时间戳
提议的结构变化:
如果可能,使用 poll_id 作为路由值。
一般来说,尽量避免只作为访问器存在的主键。crate 目前不支持自动生成密钥。所以客户必须提供这些ID。很难生成唯一的整数值,因为没有共享状态就不能有递增的值。您可以将 uuid 函数和字符串作为 ids 的列类型(例如 poll 类型可以是口语标识符)。
对于评级,我建议从独特的价值中建立主要的。还使用一列进行上下评级,如下所示:
创建由 (poll_id) 聚类的表评级 (poll_id int primary key, user_id int primary key, rating byte);
favouritepoll 可以是数组(int)类型的用户上引用投票的列 - 如果只有一个引用是可能的,或者只是 int
目前连接需要在客户端完成,这对于 1:1 和 n:1 关系很容易。任何其他类型的连接都可以通过非规范化来解决,这取决于针对数据执行的查询。