如何将MYSQL轮询数据库结构转换为CrateData表

时间:2014-05-26 05:36:32

标签: crate

Polling App Database Structure

嗨,我只想将这个Mysql Table结构转换为crateData表。

以下是与此轮询应用程序关联的表格列表。

  1. 用户(用户详细信息)
  2. 投票(投票详情)
  3. 评级(投票评级)
  4. 民意调查(评论属于用户投票)
  5. FavouritePoll(用户最喜欢的民意调查列表)
  6. user_follow(必须遵循的用户)
  7. 类别(投票所属的类别)
  8. 由于

1 个答案:

答案 0 :(得分:0)

感谢@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): for varchar *使用字符串 对于日期时间使用时间戳

建议的结构变更:

如果可能,请使用poll_id作为路由值。

一般来说,尽量避免仅作为访问者使用的主键。 crate目前不支持自动密钥生成。所以客户必须提供这些ID。很难生成唯一的整数值,因为没有共享状态就不能有增量值。你可以将uuid函数和字符串作为id的列类型(例如,poll类型可以是说话标识符)。

对于评级我建议从唯一值构建主要版本。也可以使用一列上下评级,如下所示:

创建表评级(     poll_id int主键,     user_id int主键,     评级字节 )聚集(poll_id);

favoritepoll可以是引用poll的array(int)类型用户的列 - 如果只有一个引用可以只是int

目前的连接需要在客户端完成,这对于1:1和n:1关系很容易。任何其他类型的连接都可以通过非规范化来解决,这取决于对数据执行的查询。