1

轮询应用程序数据库结构

你好,我只是想把这个 Mysql 表结构转换成 crateData 表。

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

  1. 用户(用户详细信息)
  2. 投票(投票详情)
  3. 评分(投票评分)
  4. PollComment(评论属于用户投票)
  5. FavouritePoll(用户最喜欢的投票列表)
  6. user_follow(它必须关注的用户)
  7. 类别(投票所属的类别)

谢谢

4

1 回答 1

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):对于 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 关系很容易。任何其他类型的连接都可以通过非规范化来解决,这取决于针对数据执行的查询。

于 2014-05-28T12:12:11.497 回答