客户多地址和默认地址的Mysql数据库设计

2024-01-11

我正在使用 Mysql 和 INNODB 引擎创建电子商务的数据库结构。

Point 1:要为客户创建多个地址,我有这个表

我以正确的方式做吗?我应该如何存储默认地址(在哪个表中)?

Point 2:我有另一个名为“供应商”的表,我应该将其连接到带有“供应商地址”表的地址还是有更好的方法?

Point 3:表格中的城市和国家怎么样?我应该添加一些东西还是可以?也许两者之间的另一个表中的字段“区”?


在我看来,你把这件事搞得太复杂了。没有必要让您的地址架构如此过度规范化。我见过的大多数处理多个客户地址的系统都有一个像您一样的客户表,然后有一个地址表,如下所示:

 customer_id
 address_ordinal  (small number for each customer: 0,1,2,3 etc).
 primary    (boolean)
 address_1
 address_2
 locality   (city, village, etc)
 province   (state, etc)
 postcode   (zip, postcode etc)
 country

customer_id是一个外键customer桌子。主键是 (customer_id, address_ordinal). The primary列是true如果该地址是主要地址。

关于您有关供应商的问题,您可能需要创建一个名为“联系人”的公用表,并为您的客户和供应商提供 contact_ids。

如果您的系统包含一个包含(邮政编码、地区、省)行的参考表(可能是您从数据供应商处购买的),您可以使用它来帮助填充您的地址表。但您应该避免强制您的地址仅包含硬编码的邮政编码:这些参考表很快就会过时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

客户多地址和默认地址的Mysql数据库设计 的相关文章

  • JPA 乐观锁与同步 Java 方法

    使用 JPA 乐观锁定 我们可以通过 Version 字段控制数据库表是否已被另一个事务同时更新 从而允许在数据库中存储可靠的数据 如果一个Java应用程序只有一个CRUD服务负责数据库中的特定实体 我们也可以同步其方法并管理信息在数据库中
  • 如何在 Node.js 中使用 Winston 将日志存储到 mysql 数据库

    我正在使用 winston 为我的应用程序进行日志记录 我已经使用这个完成了文件传输 class LoggerHelper extends BaseHelper constructor cApp super cApp this props
  • DB2 Express 的默认用户名和密码

    我已在本地 Windows 计算机上安装了 Db2 Express 谁能告诉我默认的管理员凭据是什么 我尝试过以下组合 什么都不起作用 用户名 db2admin 密码 db2admin 用户名 db2admin 密码 密码123 应该是您本
  • 重复键错误不会取消/回滚mysql事务

    当在 mysql innodb 事务中时 我希望重复的键错误会导致回滚 它没有 相反 它只是抛出一个错误并继续执行下一个命令 一旦到达 COMMIT 命令 事务将被提交 没有重复键导致命令 这是预期的行为吗 如果是这样 如何设置它以便在发生
  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • 级联删除时触发调用

    我在 MySQL 中有表 A 它有一些对其他表 B C D 的级联删除的引用 当从 A 中删除某些内容时 我需要使用触发器 当我直接从 A 删除记录时 此触发器起作用 但它不适用于级联删除 是否存在任何版本的 MySQL 可以让我的触发器与
  • 通过 PDO 将双精度数插入 MySQL 时精度损失

    我遇到了这种非常烦人的行为 我想知道我是否做错了什么 或者这是否是故意的 如果是的话 为什么 每当我在 php 5 3 中有一个 double 类型的变量 并且想将其插入到数据库 MYSQL 5 0 的 double 类型字段中时 该值总是
  • 如何从实体框架中的 .edmx 文件生成数据库?

    我不得不突然转而使用 Code First Entity Framework 4 1 一开始我对这个框架一无所知 但在过去的 8 个小时里 我现在对阅读博客和文章感到更加自在 特别是这个博客 http blogs msdn com b ad
  • oracle lag 函数与 group by

    我有一个查询忽略从前一个值增加的值 例如 采用下表 col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询 select col1 from select col1 lag
  • Mysql关于重复键更新+子查询

    使用这个问题的答案 需要 MySQL INSERT SELECT 查询具有数百万条记录的表 https stackoverflow com questions 662877 need mysql insert select query fo
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 如何在 swift 3 中将 NSArray 转换为 Swift Array

    我有两个数组 var arr1 NSArray var arr2 String 我想转换NSArray到字符串数组中 我在用 arr2 arr1 作为 细绳 但它给了我错误 NSString is not a subtype of NSAr
  • 在 Python 中将小时和分钟转换为总分钟

    我有一个 Pandas DataFrame 其中有一列以小时和分钟为单位的时间字符串 例如 1 小时 8 分钟 有些单元只有几分钟 例如 47 分钟 我试图从这种格式转换为总分钟数的整数值 例如 1 小时 8 分钟将是 68 我尝试对其进行
  • TFS 2018 Update 2 IIS 网站部署已弃用或缺失

    将 TFS 更新到更新 2 后 在 CI 构建任务中 IIS Web 应用程序部署 被标记为 已弃用 这个任务的替代品是什么 Also in the CD in the after adding IIS Website Deployment
  • Django 无效的块标签:endelse 和 ifequal

    我想使用 djangoifequal and else判断变量是否等于的标签80 or 22 所以 这是代码 if firewalls thead tr th IP address th th Function th tr thead en
  • O(n) 算法找出出现次数超过 n/2 次的元素

    在一次采访中 有人要求我提供一个 O n 算法来打印在数组中出现超过 n 2 次的元素 如果存在这样的元素 n 是数组的大小 我不知道如何做到这一点 有人可以帮忙吗 这是博耶的投票算法 http www cs utexas edu moor
  • 按钮高度不一致(跨浏览器)

    我在设置按钮的高度时遇到问题 基本上我无法跨浏览器使用它 对于 Firefox 它高于normal 没有任何理由 这是一个屏幕截图 Firefox Safari 和 Opera 按此顺序 这里是代码 http jsfiddle net TM
  • 在 iOS 中绘制矩形

    我的应用程序的目标是让用户能够通过向左和向右滑动 iPhone 屏幕来对不同的日程安排选项进行排序 当用户对这些不同的调度选项进行排序时 我将如何绘制和删除矩形 我有一个 UIViewController h UIViewControlle
  • 通过文档文字 SOAP 发送 Base64 图像的替代方案

    我目前正在修改业务应用程序的文档文字 SOAP 服务 该应用程序前后传输有关客户的数据 刚刚确定了传输扫描文档图像的新要求 我遇到的问题是我使用的专有语言不支持 SOAP 附件 传输的图像可以是最大 32KB 的任何图像 我能想到的唯一解决
  • 获取产品的自定义选项值 magento 2

    我的产品有两个自定义选项 颜色和尺寸都是下拉菜单 在产品详细信息页面中 我必须显示该产品的所有可用颜色 我尝试了以下代码并且它有效 但它返回所有颜色和大小的值 但我只需要颜色值 那就是我想按颜色选择自定义选项 product block g
  • 在Windows中,2<&1和2>&1有什么区别?

    本页中的示例和解释让我感到困惑 http www microsoft com resources documentation windows xp all proddocs en us redirection mspx mfr true h
  • 等待 Kotlin 协程在 onCreateView() 中完成

    我有一个初始化块onCreateView 其中一些变量是从 SharedPreferences DB 或 Network 当前从 SharedPreferences 分配的 我想用这些值更新视图onViewCreated 但它们在协程之前更
  • 合并所有两个表但列数不同

    select count as total FROM SELECT FROM database1 orders WHERE number LIKE 11111111111111111 UNION ALL SELECT FROMdatabas
  • 信号会通过哪些方式干扰管道通信?

    我对信号一无所知 对管道也只有一点了解 从评论来看zdim s在这里回答 https stackoverflow com questions 48558093看来信号可能会干扰父进程和子进程之间的管道通信 有人告诉我 如果你使用IO Sel
  • 错误:(24, 11) 无法解析:com.android.support:appcompat-v7:8.0.+

    请帮助解决这个错误 因为这是我的第一个 Android 项目 摇篮同步 应用插件 com android application android compileSdkVersion 8 buildToolsVersion 23 0 2 de
  • 什么是对象切片?

    在 C 中 什么是对象切片以及它何时发生 切片 是将派生类的对象分配给基类的实例 从而丢失部分信息 其中一些信息被 切片 掉 例如 class A int foo class B public A int bar 所以一个类型的对象B有两个
  • Bootstrap 委托弹出内容回调触发两次

    我正在使用 Twitter Bootstrap 2 3 2 并且我正在注册一个弹出窗口 每当带有选择器的 td 悬停在上面时就会打开 但是我注意到在控制台中内容回调被触发两次 有没有办法防止这种情况发生 table data popover
  • Caffe 中的欧几里得损失层

    我目前正在尝试在 caffe 中实现我自己的损失层 在尝试这样做的同时 我使用其他层作为参考 然而 让我困惑的一件事是使用top 0 gt cpu diff in Backward cpu 我将使用EuclideanLossLayer作为参
  • ruby中的递归哈希转换函数

    我有以下响应模式的 swagger openAPI 定义 h type gt object properties gt books gt type gt array items gt type gt object properties gt
  • Heroku 无法验证 mongolab

    前两天已经修正了 昨天我对 heroku 做了一些更改 应用程序崩溃了 我发现heroku logs that app bundle gems ruby 1 9 1 gems mongo 1 4 0 lib mongo db rb 137
  • 客户多地址和默认地址的Mysql数据库设计

    我正在使用 Mysql 和 INNODB 引擎创建电子商务的数据库结构 Point 1 要为客户创建多个地址 我有这个表 我以正确的方式做吗 我应该如何存储默认地址 在哪个表中 Point 2 我有另一个名为 供应商 的表 我应该将其连接到