首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何制作一个可以添加多个相同数目的不同项的表?

如何制作一个可以添加多个相同数目的不同项的表?
EN

Database Administration用户
提问于 2018-08-19 08:09:24
回答 1查看 296关注 0票数 1

我想创建一个表来存储用户的优惠券。

例如,有3张优惠券,即A、B和C等。用户可以拥有10张优惠券A、20张优惠券B和5张优惠券C等。

我应该如何创建一个表来存储这些?系统中有许多用户。如何创建一个能够存储所有这些信息的表?

如果我只为用户和优惠券添加另一个表,我仍然需要添加一个表,它可以计算优惠券的数量。我有8种优惠券。我是否可以只使用一张表,并存储每一列的每张优惠券和每行的优惠券数量?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-08-19 08:47:17

您不能正确地使用单个表,更确切地说,您的数据库将是冗余的,并且很容易受到不一致的影响。

你应该读一下关于数据库规范化的文章。

一个规范化的解决方案是:

  1. users,列:
    1. user_id (整数,也是主键)
    2. ...any其他用户数据,名称等.

  2. coupons,列:
    1. coupon_id (整数,也是主键)
    2. ...any其他优惠券数据,名称,价值等.

  3. user_coupon (它是重要的),它是一个如此命名的桥接表,列:
    1. user_id (users(user_id)的外键)
    2. coupon_id (coupons(coupon_id)的外键)
    3. 计数(整数,显示有多少id coupon_id的优惠券有用户user_id)

重要的是表user_coupon上的主键必须是user_idcoupon_id

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/215301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档