Tag: 数据库

SQLite和共享首选项的优点和缺点

在SQLite数据库和共享首选项中存储信息的好机制是什么? 为什么使用共享偏好? 为什么使用sqlite? 我试图找出它们之间的区别,哪个是更好的数据存储机制,但我无法在Google上find合适的答案。 请帮助我的例子和解释。

在MySQL查询中,为什么使用连接而不是在哪里?

好像要合并两个或多个表,我们可以使用join或where。 彼此有什么优势?

表中主键的最佳做法是什么?

在devise表格的时候,我养成了一个习惯,那就是有一列是唯一的,而且是主键。 这取决于要求以三种方式实现: 自动递增的标识整数列。 唯一标识符(GUID) 可用作行标识符列的短字符(x)或整数(或其他相对较小的数字types)列 数字3将用于相当小的查找,大多数读取的表格可能具有唯一的静态长度string代码,或数字值(例如年份或其他数字)。 大多数情况下,所有其他表将具有自动递增整数或唯一标识符主键。 问题:-) 我最近开始使用没有一致的行标识符的数据库,主键当前在不同的列上聚集在一起。 一些例子: date时间/字符 date时间/整数 date时间/ VARCHAR 炭/ NVARCHAR / nvarchar的 这有没有一个有效的案例? 我会一直为这些情况定义一个身份或唯一标识符列。 另外还有很多没有主键的表格。 如果有的话,有什么理由呢? 我试图理解为什么桌子是按照原样devise的,这对我来说似乎是一个很大的混乱,但也许有充分的理由。 第三个问题可以帮助我解释答案:在使用多列来组成复合主键的情况下,这种方法与代理/人工键有什么特别的优势? 我主要在考虑性能,维护,pipe理等方面?

识别和非识别关系有什么区别?

我还没有能够完全把握分歧。 你能描述两个概念并使用现实世界的例子吗?

sqlite中的variables表名

问题:是否可以使用variables作为表名而不必使用string构造函数呢? 信息: 我现在正在开发一个项目,从一个明星模拟我的数据目录。 为此,我将所有的数据加载到一个sqlite数据库。 它工作得很好,但是我决定为我的db增加更多的灵活性,效率和可用性。 我打算在后来的模拟中添加飞行器,并且想要为每个星星制作一个表格。 这样我就不必在每个太阳系里查询一个20米的桌子了。 我已经被告知使用string构造函数是不好的,因为它使我容易受到SQL注入攻击。 虽然这不是什么大问题,因为我是唯一能够访问这些数据库的人,所以我想遵循最佳实践。 而且这样一来,如果我做一个类似的项目向公众开放,我知道该怎么做。 目前我正在这样做: cursor.execute("CREATE TABLE StarFrame"+self.name+" (etc etc)") 这工作,但我想做更多的事情: cursor.execute("CREATE TABLE StarFrame(?) (etc etc)",self.name) 虽然我明白这可能是不可能的。 尽pipe我会解决类似的问题 cursor.execute("CREATE TABLE (?) (etc etc)",self.name) 如果这不可能,我会接受这个答案,但如果有人知道这样做的方法,请告诉。 🙂 我在Python编码。

如何处理数据库中用户的authentication/授权?

目前,我正在使用JSF 2.0,Tomcat 7和MongoDB开发Web项目。 我有一个很大的问题,就是如何处理数据库中的用户的会话pipe理和authentication/授权。 我想要的结构如下:只有login的用户可以创build事件,每个人都可以看到创build的事件。 create.xhtml – >仅适用于login用户。 events.xhtml – >公开为每个人。 我正在计划的基本结构是: 检查页面是否需要login用户(例如create.xhtml ) 如果是,请检查用户是否login 如果用户未login,请转到login.xhtml 如果成功login,请回到请求的页面 保持“用户已login”信息,除非用户单击注销button。 (在那里我猜@SessionScoped进场) 问题是: 这样做的较简单的方法是什么? 我应该在哪里使用@SessionScoped注释? 在Create.java或LoginManager.java ? 春季安全看起来有点复杂,我真的需要吗? 如果是的话,你能解释一下实现如何与JSF 2.0和Mongo DB一起工作吗?

如何在MVC应用程序中caching数据

我已经阅读了很多有关页面caching和部分页面caching在MVC应用程序中的信息。 不过,我想知道你将如何caching数据。 在我的场景中,我将使用LINQ to Entities(entity framework)。 在第一次调用GetNames(或任何方法)时,我想从数据库中获取数据。 我想将结果保存在caching中,并在第二次调用时使用caching版本(如果存在的话)。 任何人都可以显示一个例子,这将如何工作,这应该实施(模型?),如果它能工作。 我已经看到这在传统的ASP.NET应用程序中完成,通常用于非常静态的数据。

无法将“System.DBNull”types的对象转换为键入“System.String”

我在我的应用程序中得到了上述错误。 这是原始代码 public string GetCustomerNumber(Guid id) { string accountNumber = (string)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id)); return accountNumber.ToString(); } 我换成了 public string GetCustomerNumber(Guid id) { object accountNumber = (object)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidCRM, CommandType.StoredProcedure, "spx_GetCustomerNumber", new SqlParameter("@id", id)); if (accountNumber is System.DBNull) { return string.Empty; } else { return accountNumber.ToString(); } } 有没有更好的方法呢?

在MySQL触发器中抛出一个错误

如果我before the update表before the update有一个trigger ,我怎样才能抛出一个错误,阻止该表上的更新?

在MySQL数据库中存储纬度/经度时使用的理想数据types是什么?

考虑到我将对经纬度对进行计算,哪种数据types最适合用于MySQL数据库?