mysql - 如何设计一个可以添加 Unresolved 项目数的数据库

标签 mysql sql database database-design

我有一张表格,其中填写了以下内容:

Nick: SbsNick;
Item: SomeItem1; Price: PriceOfItem1
Item: SomeItem2; Price: PriceOfItem2  
Item: SomeItem3; Price: PriceOfItem3
................................

我可以添加具有不同数量输入的项目。这意味着每个尼克可以有不同数量的项目。

我想创建可以查询的数据库

SELECT ? FROM items WHERE Item="SomeItem"

并接收 SomeItem 的所有昵称和价格,即我希望最终得到这样的表格:

Nick   |Price
-------------
Jack   |20
BlackB |18
Karl   |25
.............

我在设计这样的数据库时遇到了问题,因为我觉得我缺少一个额外的维度。如果我想修复表的数量,我发现某些表中需要无限数量的列。如果我想绑定(bind)表和列的数量,我发现单元格的行为必须类似于数组。

是否有一种巧妙的方法来设计这样的数据库?

最佳答案

我认为你需要学习关系数据库。 我不明白你的确切问题是什么。

您需要三个表: 用户、项目、购买。一个代表用户,另一个代表项目,最后一个代表两者之间的关系

 USERS(ID_USER, NAME, NICK, REGISTER_DATE)

 ITEMS(ID_ITEM, DESCRIPTION, PRICE)

 PURCHASES(ID_PURCHASE, ID_USER, ID_ITEM, PRICE, PURCHASE_DATE)

我使用了“PURCHASES”这个名称,因为我个人不知道您的问题中用户和项目之间关系的确切性质,可以随意命名第三个表,无论您想要什么。

用户在表 USERS 或表 ITEMS 中进行的每次购买都不需要额外的新列,您只需在表 PURCHASES 中插入一个新行。

关于mysql - 如何设计一个可以添加 Unresolved 项目数的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381458/

相关文章:

MySQL Query 选择上周的数据?

mysql - 无法在我的 MySQL 数据库中创建最后两个表

mysql - 每周更新数据的数据库设计

php - MySQL插入数据时自动更新字段

android - 无法从 Activity A 获取 Intent 到 Activity B

php - 设置电话号码格式

sql - Big Query 多表

javascript - 将 JSON 文件传递​​到 php 服务器,然后将其中的数据保存到 Mysql DB

sql - 从 MySQL 迁移到任意符合标准的 SQL2003 服务器

mysql - 如何检查 INSERT 在存储函数中是否运行良好?