java - 为每个商店的多个价格设计数据库结构

标签 java android sqlite google-maps

我的应用程序有一个简单的界面,当单击按钮时,它会显示带有 5 个标记的 Google map 屏幕。单击这些标记时,会出现一个弹出窗口,显示商店的价格,例如:

Food:  £1
Water: £2

我正在尝试用我的应用程序实现一个数据库,这样我就可以只存储食物和水的多个价格,而不是其他。例如-

A 店有食物和水,价格从 1 - 10 英镑不等,B 店也有食物和水,价格从 1 - 10 英镑不等,与 A 店一样。

如何设计一个表格,其中商店 A 为一行,列有 10 个不同的价格,另一行名为商店 B,也包含 10 个不同的价格? 这样做有意义吗 -

Shop A | FoodPrice_1 | WaterPrice_1 | FoodPrice_2 | WaterPrice_2 | FoodPrice_3
Tesco  | 1.99        | 2.05         | 1.04        | 2.31         | 1.93

Shop B    | FoodPrice_1 | WaterPrice_1 | FoodPrice_2 | WaterPrice_2 | FoodPrice_3
Sainsburys| 1.99        | 2.05         | 1.04        | 2.31         | 1.93

是否可以遍历每一列并将价格显示到某个标记?

顺便说一句,这不一定是完全完美的设计,该应用程序不会发布。我想做的主要事情是能够单独显示每个价格,因此不需要复杂的结构。

最佳答案

在您的示例中,我假设列的名称是产品的品牌?你不希望这样。它根本不是模块化的。

您可能需要一个如下所示的表格:

有 2 列的商店表:

id | shop_name

具有 4 列的 Product_list 表:

id | shop_id  | product_id | product_price

产品表

id | product_name | other_attributes

或者甚至是具有 2 列的商店表:

id | shop_name

产品表

id | product_name | product_price | shop_id

所以这一切都取决于您的需求。

就您的情况而言,如果应用程序没有发展,您可能需要使用第二个选项,只要没有大量重复数据就不会成为问题。

一般来说,我不会选择第二个,因为同一家商店可能会销售与另一家相同的产品,唯一的区别是价格,因此您可能不希望有重复的产品名称或属性(重量,尺寸,颜色,...),想象一下,如果 5 家商店销售完全相同的产品(我将添加额外的信息以使其看起来更明显),您的数据库会喜欢这样:

id | product_name | product_price | shop_id | product_weigth | product_flavor

id | Coca-Cola    | product_price | 1       | 2L             | Cherry
id | Coca-Cola    | product_price | 2       | 2L             | Cherry
id | Coca-Cola    | product_price | 3       | 2L             | Cherry
id | Coca-Cola    | product_price | 4       | 2L             | Cherry

但是使用解决方案一,您将拥有

包含 3 列的product_list 表

id | shop_id  | product_id | product_price
1  | 1        | 1          | product_price
2  | 2        | 1          | product_price
3  | 3        | 1          | product_price

产品表

id | product_name | Weight | Flavor
1  | Coca-Cola    | 2l     | Cherry

关于java - 为每个商店的多个价格设计数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417711/

相关文章:

android - Web API 2 身份验证过滤器 - 存在授权 header 时 AuthenticateAsync 不触发

java - 如何从 HttpServletRequest 获取 URL 片段标识符

java - ShareActivityProvider 不显示为按钮

java - 从我的应用程序运行 shell 实用程序会导致其使用 100% CPU

android - Android 4.1+ 中的 MP4 文件编写器

sqlite - 使用 SQL 'With' 子句时出错

r - 如果检查输入,是否需要参数化 SQL 搜索?

android - 在上传到 android 中的 playstore 之前管理数据库

java - JTable ,每当单击按钮时更新表

Java:从第二个派生类调用基方法类