什么是在mysql数据库中存储链表的最佳方法,这样插入很简单(即你不必每次都重新索引一堆东西),这样就可以很容易地按顺序拉出列表了.
是否可以重新排序SQL数据库中的行?例如; 如何交换第2行和第3行的值?
行的顺序对我很重要,因为我需要根据顺序显示值.
感谢所有的答案.但'Order by'对我不起作用.
例如,我在数据库中放置了一个书签列表.我想根据查询得到的结果进行显示.(不按字母顺序排列).就在插入它们的时候.
但是用户可以重新排列书签的位置(以他/她想要的任何方式).所以我不能使用'order by'.
一个例子是如何在firefox中的书签中显示书签.用户可以轻松切换位置.我怎么能在DB中提到它?
谢谢.
场景:
存在用户拥有的电影数据库,电影显示在称为"我的电影"的页面上,电影可以按照用户期望的顺序显示.例如位置#1中的"搏击俱乐部",位置#3中的"驱动器",依此类推.
显而易见的解决方案是为每个项目存储一个位置,例如:
movieid,userid,position
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
然后在输出数据时按位置排序.此方法适用于输出,但在更新时存在问题:项目的位置需要更新所有其他位置,因为位置是相对的.如果电影#3现在位于第2位,则电影#3现在需要更新到位置#2.如果数据库包含10,000部电影,并且电影从位置#1移动到位置#9999,则需要更新近10,000行!
我唯一的解决方案是单独存储定位,而不是每个项目位置都有一个单独的字段,它只是一个大的数据转储位置,在运行时采取并与每个项目相关联(json,xml,无论如何),但感觉..效率低下因为数据库无法进行排序.
我总结的问题:在一个对提取和更新友好的列表中存储项目位置的最有效方法是什么?
所以我有一个用户收藏夹表.它们有几百万行.
目前,它们只有三列:id(pk),userId和someFkRef.有一个索引userId允许我快速选择用户的收藏夹.
目前这些是按顺序排序的id,实际上只是插入顺序.我们希望为用户提供重新订购收藏的机会,最有可能通过某种拖放式互动.
我的第一个(我怀疑天真)方法,这将是简单地增加一个order列,并在一个综合指数userId,order.但是,在反射时,当用户将其项目移动到列表上一定距离时,项目的起始位置和结束位置之间的所有中间行都需要order重新计算其列,因此也需要重新计算索引.
这(很可能)很糟糕.
在我花了很多年的时间试图量化到底有多糟糕之前,我想知道是否有一个更好的基于表格的表示,用我上面描述的各种操作来操作更便宜.
我有一个用户配置文件表.每个用户都可以拥有许多配置文件,并且用户可以排列它们在网格中的显示顺序.
共有2个表用户和个人资料(1:M)
我orderby在Users表中添加了一个列,其中的值为1,2,3 ..
到目前为止似乎还可以.但是当用户将最后一条记录的顺序更改为第一条记录时,我必须完成所有记录并将其值增加+1.这在我看来非常难看.
对于这种情况,有没有更方便的解决方案?
我正在创建一个数据库表,该表将存储最终将显示在网页上的菜单链接.
我的问题是我想控制菜单项的顺序.我可以有一个名为order的字段,但每次我有一个新的菜单链接我都必须插入订单并将所有更高顺序的记录更改为+1.
例如,假设我想要链接(按此顺序):
Home About Products Shopping
我可以有一个名为MenuLinks的表,并有列:Name,Order
我的数据看起来像这样:
Name Order Home 1 About 2 Products 3 Shopping 4
但如果我现在想添加一个名为ContactUs的新链接,但我想在家里出现.
任何人都可以想到一种更好的方法来存储需要在数据库表中排序的列表,而无需这种繁琐的维护工作.
给定两个字符串a和b,其中a按字典顺序<b,我想返回一个字符串c,使得a <c <b.用例是在由这些键排序的数据库中插入节点.如果您愿意,可以指定a,b和c的格式,只要可以在插入时生成初始值和新值.
这有一个实用的算法吗?
我是CouchDB的新手.已经缺少SQL.
无论如何,我需要创建一个视图,它会发出我的文档的一些属性以及所有修订ID.
像这样的东西
function(doc) {
if (doc.type == 'template') {
emit(doc.owner, {_id: doc._id, _rev: doc._rev, owner: doc.owner, meta: doc.meta, key: doc.key, revisions_ids: What goes here?});
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我如何告诉它包含所有修订?
我知道我可以调用 http:// localhost:5984/main/94c4db9eb51f757ceab86e4a9b00cddf
对于每个文档(来自我的应用程序),但实际上不能很好地扩展.
是否有批处理方式来获取修订信息?
任何帮助,将不胜感激!!