小编Meh*_*sly的帖子

为多对多关系(产品的变体)的组合设计SQL模式

我希望这个标题有点帮助.我正在使用MySQL作为我的数据库

我正在建立一个产品数据库,我不知道如何处理产品变化的存储价格/ SKU.产品可能有无限的变化,每个变化组合都有自己的价格/ SKU /等.

这就是我现在设置我的产品/变体表的方法:

PRODUCTS
+--------------------------+
| id | name | description  |
+----+------+--------------+
| 1  | rug  | a cool rug   |
| 2  | cup  | a coffee cup |
+----+------+--------------+

PRODUCT_VARIANTS
+----+------------+----------+-----------+
| id | product_id | variant  | value     |
+----+------------+----------+-----------+
| 1  | 1          | color    | red       |
| 2  | 1          | color    | blue      |
| 3  | 1          | color    | green     |
| 4  | 1          | material …
Run Code Online (Sandbox Code Playgroud)

sql schema database-administration e-commerce database-schema

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

Guice注入servlet

我是Google Guice框架的新手,我有一个关于注入guice servlet和使用RequestScope的问题.好吧,让我从我的代码中给出一些例子,只是为了清楚地说明问题.

我有一个bean类,例如Bean ..

@RequestScope
public class Bean {
    private String user;
    private String pass;

    // constructor which is @inject 

    // getters and setters
}
Run Code Online (Sandbox Code Playgroud)

在这里,我有一个servlet

@Singleton
public class MainServlet extends HttpServlet {
    doGet(HttpServletRequest request, HttpServletResponse response) {
        .... some code 
        Injector injector = Guice.createInjector();
        ValidUser validUser = injector.getInstance(ValidUser.class)
        // Here i got the below exception
    }
}



com.google.inject.ConfigurationException: Guice configuration errors:

1) No scope is bound to com.google.inject.servlet.RequestScoped.
  at Bean.class while locating Bean
Run Code Online (Sandbox Code Playgroud)

这里有趣的是,我们知道servlet范围是单例.而且我怎样才能从http请求中获取 - Bean实例?因为据我所知,在注入Bean类的实例后,它会进入http请求,对吧?

欢迎任何帮助或示例.谢谢Br

java dependency-injection guice

7
推荐指数
1
解决办法
9482
查看次数

设计模式动态添加数据库表中的列

用户想要动态地在UI中添加新字段.这个新字段应该存储在数据库中,并且应该允许它们对它执行CRUD.

现在我可以通过指定XML来实现这一点,但我想要一个更好的方法来搜索这些新列.此外,触发ALTER语句和添加新列的想法似乎是错误的.

任何人都可以帮我在数据库服务器端设计模式如何解决这个问题?

sql database

4
推荐指数
1
解决办法
3245
查看次数

mysql_fetch_assoc()的PDO方法?

我曾经做过 :

$resource = mysql_query("SELECT * FROM table WHERE id = " . $id);
$user = mysql_fetch_assoc($resource);
echo "Hello User, your number is" . $user['number'];
Run Code Online (Sandbox Code Playgroud)

我读过mysql语句都已弃用,不应该使用.

我怎么能用PDO做到这一点?

第一行是:

$stmt = $db->prepare("SELECT * FROM table WHERE id = " . $id); // there was an aditional double quote in here.
$stmt->execute(array(':id' => $id));
Run Code Online (Sandbox Code Playgroud)

mysql_fetch_assoc()函数怎么样?

我正在使用PHP

php mysql database pdo

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

如何在ktor应用程序中注入依赖项

该文档讨论了依赖注入,但并没有真正展示它是如何完成的.

文档也没有完成,并有一堆占位符:http: //ktor.io/getting-started.html

我尝试以接受参数(这是我的依赖)的方式创建我的main函数,但是当我调用时在测试端失败了withTestApplication.我查看了应用程序代码,发现Application接受了一个配置对象,但我不知道如何更改该配置对象以在其中注入一些依赖项.

package org.jetbrains.ktor.application

/**
 * Represents configured and running web application, capable of handling requests
 */
class Application(val environment: ApplicationEnvironment) : ApplicationCallPipeline() {
    /**
     * Called by host when [Application] is terminated
     */
    fun dispose() {
        uninstallAllFeatures()
    }
}

/**
 * Convenience property to access log from application
 */
val Application.log get() = environment.log
Run Code Online (Sandbox Code Playgroud)

在测试代​​码中使用withTestApplication我有类似于下面的内容:

@Test
internal fun myTest() = withTestApplication (Application::myMain)
Run Code Online (Sandbox Code Playgroud)

withTestApplication如果我myMain使用参数调用(我需要模拟和注入的参数),上述操作将失败.

更新:

问题是,在我的请求处理,我使用一个连接到外部的其他网络服务,并做了一些要求,我需要一种方法,以便能够在我的测试,以便注入这个我可以存根/模拟它,改变依赖类的基于我的测试用例的行为.

java unit-testing dependency-injection kotlin ktor

4
推荐指数
2
解决办法
1863
查看次数