问题列表 - 第39829页

什么是最好的:每个记录1个表或1个表,所有记录都与外键相关联?

我有一个应用程序,允许用户创建不同的表单(调查),然后填写它们.(所以它可以替代纸张).

这是我在应用程序中使用的当前模型:

 Table 1)
+-------------------------+
|      SURVEYS TABLE      |   
+----+------+-------------+
| ID | name | description |  
+----+------+-------------+

 Table 2)   
+-----------------------------------+
|       $[name_of_the_survey]       |
+----+-------+------+-------+-------+
| ID | field | type | value | items |
+----+-------+------+-------+-------+


 Table 3)
+--------------------------------------+
|    $[name_of_the_survey] _records    |
+----+---------------------------------+
| ID | columns specific to each survey |
+----+---------------------------------+
Run Code Online (Sandbox Code Playgroud)

所以基本上当用户创建调查时,程序会在Surveys Table中插入一条记录,然后创建2个表:

表(2)用于表格(3)的字段,用于将要存储的记录,其中列对应于表(2)行.

它有效,但有一些局限性.例如,当您向表(2)添加字段时,它必须读取表(3)内容,将其保存到虚拟表,删除上一个表(3)并创建一个新表.当表(3)具有大量记录时,这可能是性能问题.

所以我的问题是......有更好的数据库设计吗?

database sqlite android database-design

6
推荐指数
1
解决办法
267
查看次数

使用BETWEEN或<=,> =表示Oracle时间戳

我的Oracle表有一个tmstp包含TIMESTAMP(3) WITH TIME ZONE数据类型的列.

当我运行以下查询时

SELECT COUNT(column1) 
  FROM table1 
 WHERE tmstp BETWEEN to_timestamp_tz('10-OCT-10 05.00.00.000000000 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR')
                 AND to_timestamp_tz('11-OCT-10 04.59.59.999999999 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR');
Run Code Online (Sandbox Code Playgroud)

它提供的计数大约是以下查询的两倍:

SELECT COUNT(column1) 
  FROM table1 
 WHERE tmstp >= to_timestamp_tz('10-OCT-10 05.00.00.000000000 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR') 
   AND tmstp <= to_timestamp_tz('11-OCT-10 04.59.59.999999999 AM  -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR');
Run Code Online (Sandbox Code Playgroud)

我认为他们应该给出相同的结果.关于可能发生什么的任何意见?我该怎么调试呢?

sql oracle oracle10g

8
推荐指数
1
解决办法
1万
查看次数

命名的捕获多次匹配(Perl)

当我运行此代码时:

$_='xaxbxc';
if(/(x(?<foo>.))+/) {
    say "&: ", $&;
    say "0: ", $-{foo}[0];
    say "1: ", $-{foo}[1];
 }
Run Code Online (Sandbox Code Playgroud)

我明白了:

&: xaxbxc
0: c
1:
Run Code Online (Sandbox Code Playgroud)

我知道这是它应该如何工作,但我希望能够以某种方式得到所有匹配的列表('a', 'b', 'c')而不是最后一个匹配(c).我怎样才能做到这一点?

regex perl

5
推荐指数
1
解决办法
1198
查看次数

读取本地XML文件使NSXMLParser返回NULL

我有一个本地xml文件,我知道它包含UTF-8格式良好的xml.但是NSXMLParser不会解析correclty.

档案路径:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];
 NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"example.xml"];
Run Code Online (Sandbox Code Playgroud)

从Web保存xml:

 NSURL *xml = [NSURL URLWithString:@"http://www.example.com/example.xml"];
 NSString *data = [[NSString alloc] initWithContentsOfURL:xml encoding:NSUTF8StringEncoding error:nil];
 [data writeToFile:appFile atomically:YES encoding:NSUTF8StringEncoding error:nil];
Run Code Online (Sandbox Code Playgroud)

解析xml:

 NSURL *xmlFile = [NSURL URLWithString:appFile];
 NSXMLParser *addressParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFile];
Run Code Online (Sandbox Code Playgroud)

如果我尝试直接解析NSURL"xml"它可以工作,但上面的代码将返回NULL并且没有错误.我在论坛上发现了另一篇文章,描述了完全相同的内容,但我再也找不到了,帖子没有答案.

希望有人可以帮忙!基本上只需要将web xml存储到文件中,然后将其提供给NSXMLParser.

iphone nsxmlparser

2
推荐指数
1
解决办法
3227
查看次数

在php中限制文本长度并提供"阅读更多"链接

我有文件存储在php变量$ text中.此文本可以是100或1000或10000个单词.正如目前实现的那样,我的页面基于文本扩展,但如果文本太长,页面看起来很难看.

我想获取文本的长度并将字符数限制为500,如果文本超出此限制,我想提供一个链接,说"阅读更多".如果单击"阅读更多"链接,它将显示包含$ text中所有文本的弹出窗口.

php text

43
推荐指数
4
解决办法
19万
查看次数

将AppWidgets绑定到AppWidgetHost - Android

当您通常想要在Android中添加AppWidget时,有一个列表,您需要选择一个小部件并将其绑定到主屏幕.

我正在尝试构建一个app,它有自己的appWidgetHost和我为它构建的特定App Widgets.

我有两个问题:

  1. 我希望能够自动将小部件绑定到我的AppWidgetsHost,而无需用户从列表中选择.
  2. 我想创建自己的"选择窗口小部件列表"并加载我创建的窗口小部件.

简单来说; 我的AppWidgets有我的应用程序,我希望完全控制将appWidget绑定到appWidgetHost等.

3人在Google论坛中提出了类似的问题:

  1. 链接1
  2. 链接2
  3. 链接3

我发现可能的唯一答案是链接号2.Paraneet(其中一个回复者)说你可以在/ system/app下安装应用程序而不是/ data/app,因为有些安全问题.但我不确定它是否是一种可靠的生产解决方案,我想更多地了解这样做的优点和缺点.

谢谢,Shai.

android android-widget android-appwidget

5
推荐指数
1
解决办法
7570
查看次数

使用Solr搜索索引作为数据库 - 这是"错误的"吗?

我的团队正在与使用Solr作为搜索索引的第三方CMS合作.我注意到,似乎作者使用Solr作为各种类型的数据库,因为返回的每个文档都包含两个字段:

  1. Solr文档ID(基本上是类名和数据库ID)
  2. 整个对象的XML表示

所以基本上它运行对Solr的搜索,下载对象的XML表示,然后从XML实例化对象,而不是使用id在数据库中查找它.

我的直觉告诉我这是一个不好的做法.Solr是一个搜索索引,而不是一个数据库......所以对我来说更有意义的是对Solr执行复杂的搜索,获取文档ID,然后将相应的行拉出数据库.

当前的实现是否完美无缺,或者是否有数据支持这种重构成熟的想法?

编辑:当我说"XML表示"时 - 我的意思是一个存储字段,其中包含所有对象属性的XML字符串,而不是多个存储字段.

java mysql database solr

52
推荐指数
2
解决办法
2万
查看次数

Django:从服务器上的现有文件手动创建模型中的imagefield

这是在杀我!

我正在使用django-filebrowser,我想创建一个图库应用程序,利用它的上传功能来管理图像.

我有一个Gallery模型,允许用户在服务器上选择或创建目录,并将文件上传到该文件夹​​以显示在库中.我想自动搜索用户已将图像上传到的目录,然后选择该目录,然后自动为该文件夹中的每个图像创建图像实例.

class Gallery(model.Models):
    gallerydirectory = FileBrowserField(...)
    title = ...
    description ...

class Image(model.Models):
    image_field = models.ImageField()
Run Code Online (Sandbox Code Playgroud)

问题是FileBrowser表示图像与Django不同,但我想使用DJango ImageFields,因为我可以在模板端使用其他应用程序(sorl缩略图).

我有文件所需的所有数据,即文件名,路径等,我只是无法让Django创建一个ImageField的实例,而无需再次实际上传图像.我只是想填充它.

在这里看到另一个提示如下的线程:

for image in filebrowser_image_objects_list:
    f = File(open('path-to-file-on-server','r'))
    i = Image()
    i.image_field('filename.png',f.read())
Run Code Online (Sandbox Code Playgroud)

但这给了我一个:

SuspiciousOperation error
Attempted access to '/filename.png' denied 
Run Code Online (Sandbox Code Playgroud)

这表明路径没有被正确读取.我打印了文件对象的属性,它正在打开正确的图像,它只是没有被传递到ImageField

帮助将非常感谢!

UPDATE

我已经放弃了尝试这项工作,因为它太乱了.我上面遇到的问题是我将ImageField的upload_field设置为'/'并且它没有被注意到意味着该文件被写入'/something.png'.

我已对其进行了修改,以便Image现在也使用FileBrowserField而不是ImageField.

python django django-models django-filebrowser imagefield

18
推荐指数
2
解决办法
2万
查看次数

93
推荐指数
3
解决办法
5万
查看次数

显示对话框的软键盘

我正在显示一个带有edittext视图的对话框.但是,仅当用户按下编辑视图内部时,才会打开软键盘.所以我尝试使用以下代码调用InputMethodManager.

InputMethodManager imm =
 (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(dialogField,0);
Run Code Online (Sandbox Code Playgroud)

dialogField是输入字段.但是,我到底应该这样做呢?我在对话框的onStart()方法中尝试了它,但没有任何反应.我之前也尝试过请求对话框的焦点,但这没有任何改变.

我也试过这段代码

dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
    public void onFocusChange (View v, boolean hasFocus)
    {
        if (hasFocus)
        {
            Main.log("here");
            dialogInput.getWindow().setSoftInputMode(
              WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
            /*
                InputMethodManager mgr =
                  (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.showSoftInput(dialogField,0);
            */
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

在两个版本中.但是没有软键盘会出现.Main.log只是一个日志,它向我显示该函数实际被调用.是的,它被称为.

在对话框打开之前,我可以使用SHOW_FORCED标志获取键盘.但是在退出时它不会关闭.而且我只能在显示对话框之前这样做.在任何回调中它也不起作用.

android android-sdk-2.1 android-softkeyboard

70
推荐指数
3
解决办法
3万
查看次数