数据模型设计

news2025/4/21 16:51:04

数据模型设计,可以理解为数据库中的表结构设计。

我们在设计器中创建的数据模型,也称为实体。我们将前端页面中传过来的数据保存到对应的实体中,即为将前端数据保存到了数据库中。

1 、实体与枚举的创建

1 .1 创建供应商 supplier实体

在左侧设计器目录树部分,选择【数据】设计器模块,选择实体分类下的defaultDS默认数据源,右键点击选择"添加实体",输入实体名称,如使用供应商英文单词命名 supplier 。即可创建实体成功。

实体创建之后,系统会自动生成命名为主键的属性 Id,作为实体中每行记录的唯一标识。数据类型默认为整数 integer,且不可修改。属性本身不可修改和删除,当实体新增一条记录时,主键值按顺序自增或通过雪花算法生成。

另外系统还会默认自动生成“ createdtime创建时间、updatedtime更新时间、createdby创建者、updatedby更新者”4 个系统属性。不可修改系统属性类型、默认值等基本信息。但可在上方手动取消勾选系统属性

当实体新增一条数据时,createdtime 列会自动添加创建时间;当实体某条数据有更新时,updatedtime 列会自动添加更新时间……

 1.2 设置数据类型

接下来按照供应商实体数据及其类型表格,来添加供应商实体的属性。

这是一张供应商表,包含了“实体数据及其类型”:

名称标题数据类型
name供应商名称string 文本
address供应商地址string 文本
level供应商等级integer 整数
introduce公司介绍string 文本
picture公司相册string 文本
status供应商状态statusEnum枚举

点击实体的属性页签下方的“加号”,在添加属性行中,输入属性名称: name,标题:供应商名称,数据类型:string 文本……等

最终,我们发现供应商状态属性对应的数据类型是“枚举”类型,在系统中没有直接可以选择的。

1.3 创建供应商状态的枚举类型

status 供应商状态的数据类型是枚举,包含禁用和启用两种状态。

因此创建枚举类型:在左侧的【数据】模块中找到“枚举”分类,右键点击“枚举”,选择“添加枚举”,将枚举命名为 statusEnum。

双击创建好的枚举,进入枚举值设置界面(在这里,也可从名称一栏中修改枚举名称),接着点击添加枚举值的加号,添加枚举值 normal,标题命名为启用。添加枚举值 forbidden,标题命名为禁用。状态枚举值设置完毕。

注:枚举值是存入数据库的值,而标题是用户在使用系统时看到的值。

最后我们回到 supplier 实体中,设置 status 供应商状态属性的数据类型了。将数据类型设置为新创建的枚举类型。这样 supplier 实体就创建完毕了。

应用发布后,实体的数据类型就不能进行修改了。

1.4 创建剩下的内容

除了供应商实体,还有contacts联系人管理实体、product产品管理实体,其实体数据及数据类型表如下表所示:

contacts联系人管理实体:

名称标题数据类型
name联系人名称string 文本
phone联系人电话string 文本
supplierId关联供应商 Idinteger 整数
position工作岗位string 文本

product产品管理实体:

名称标题数据类型
name产品名称string 文本
supplierId关联供应商 Idinteger 整数
price合作价格decimal 小数
picture产品图片string 文本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1346406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL基础学习: 由delete和insert操作导致的死锁问题

一、问题复现:表结构 CREATE TABLE user_props (user_id bigint NOT NULL ,prop_key varchar(100) NOT NULL ,prop_value varchar(100) NOT NULL,PRIMARY KEY (user_id,prop_key) )二、死锁测试 (1)开启两个事务 (2)…

基于微信小程序的停车预约系统设计与实现

基于微信小程序的停车预约系统设计与实现 项目概述 本项目旨在结合微信小程序、后台Spring Boot和MySQL数据库,打造一套高效便捷的停车预约系统。用户通过微信小程序进行注册、登录、预约停车位等操作,而管理员和超级管理员则可通过后台管理系统对停车…

【python】爬取百度热搜排行榜Top50+可视化【附源码】【送数据分析书籍】

一、导入必要的模块: 这篇博客将介绍如何使用Python编写一个爬虫程序,从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应,以及os模块处理文件和目录操作。 如果出现模块报错 进入控制台输入&#xff…

【软件工程】走进敏捷开发:灵活、协作、迭代的软件工艺之旅

🍎个人博客:个人主页 🏆个人专栏: 软件工程 ⛳️ 功不唐捐,玉汝于成 目录 前言: 正文 敏捷开发(Agile Development) 详细介绍: 优缺点: 优点&#xf…

(2023)PanGu-Draw:通过时间解耦训练和可重用的 Coop-Diffusion 推进资源高效的文本到图像合成

PanGu-Draw: Advancing Resource-Efficient Text-to-Image Synthesis with Time-Decoupled Training and Reusable Coop-Diffusion 公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要…

php的laravel权限问题

1.这是我新建的一个路由,然后就是说每新建一个路由都要给他开个权限!!!! 2.这个是组内大佬写的: 我们也可以在里面加,也可以在浏览器的页面手动加(对我们新手来说还是浏览器的页面…

使用uni-app editor富文本组件设置富文本内容及解决@Ready先于onload执行,无法获取后端接口数据的问题

开始使用富文本组件editor时,不知如何调用相关API设置富文本内容和获取内容,本文将举例详解 目录 一.了解editor组件的常用属性及相关API 1.属性常用说明 2.富文本相关API说明 1)editorContext 2) editorContext.setContents…

JVM 常用知识和面试题

1. 什么是JVM内存结构? jvm将虚拟机分为5大区域,程序计数器、虚拟机栈、本地方法栈、java堆、方法区; 程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号指示器,用于记录当前虚拟…

Avalonia学习(十五)-OxyPlot

今天开始继续Avalonia练习。展示一些样例,尤其是第三方库的使用。 本节:OxyPlot 1.引入OxyPlot.Avalonia 2.项目引入 在Main方法里增加OxyPlotModule.EnsureLoaded()方法调用。 public static void Main(string[] args) {OxyPlotModule.EnsureLoade…

Java线程池ThreadPoolExecutor源码解析

Java线程池ThreadPoolExecutor源码解析 1.ThreadPoolExecutor的构造实现 以jdk8为准,常说线程池有七大参数,通常而言,有四个参数是比较重要的 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit …

python3处理xls并flask显示

前言: 工作中有需求对xls文件进行生成和显示,这里就将对应的xls文件的处理,读取和flask展示代码罗列出来,方便大家使用: 需要的模块,这里需要注意版本号,如果直接安装使用报错,就指…

Tensorflow2.X的GPU版框架最快最稳搭建方法

一、环境基础 Windows10以上 已装Anaconda 支持GPU 二、搭建步骤 1. 在Anaconda中创建并进入虚拟环境 conda create -n envname python3.8 conda activate envname 注意:envname 替换为你自己想命名的,下文将以“Ljdenv”出现 2.安…

微服务实战系列之Dubbo(下)

前言 眼看着2023即将走远,心里想着似乎还有啥,需要再跟各位盆友叨叨。这不说曹操,曹操就来了。趁着上一篇Dubbo博文的余温尚在,博主兴匆匆地“赶制”了Dubbo的下集,以飨读者。 上一篇博主依然从Dubbo的内核出发&#…

几代WiFi有什么差异,它们有什么区别

最典型的差异指标:单流传输速率 第一代 基于的标准: 802.11 使用频率:2.4GHz 单流最大传输速率:2Mbit/s 第二代 基于的标准: 802.11b 使用频率:2.4GHz 单流最大传输速率:11Mbit/s 第三代 …

python文件打包实战技巧

众所周知,python是一种脚本语言,python程序必须在python环境下运行,所以如果想把自己写的程序给别人看的话,就比较麻烦,他需要先配置python环境,对于电脑小白来说这是“要命”的事情。而且如果是客户的话&a…

【SD】inpaint 模型 - 换脸术 ☑

文生图-局部重绘 涂抹脸部 关键词添加lora&#xff1a; <lora:Naruto_zilaiye:1.5>, 生成图&#xff1a;

Python 中的运算符介绍(1)

算数运算符 常见的% 、//、/ 用法 赋值运算符 赋值运算&#xff1a;将等号右边赋值给等号左边 常见场景&#xff1a; 比较运算符 代码解析&#xff1a; 逻辑运算符 位运算符&#xff08;了解&#xff09; 三目运算符 身份证运算符 成员运算符

uniApp中uView组件库的丰富单元格方法

目录 基础功能 #自定义内容 #自定义大小 #展示右箭头 #跳转页面 #右侧内容垂直居中 #自定义插槽 当谈到uniapp的uView组件库中的单元格&#xff08;Cell&#xff09;方法时&#xff0c;我们需要了解它的基本功能和用法。 单元格是一种常用的UI元素&#xff0c;在移动应…

每日一题——LeetCode977

方法一 个人方法&#xff1a; 以示例1为例&#xff1a;把[-4,-1,0,3,10] 中n<0的元素拆分出来&#xff0c;把他们的平方从小到大放入arr数组&#xff0c;则arr[0,1,16] ,那数组就还剩[3,10] 对于剩下的元素&#xff0c;看arr里面有没有比他们平方更小的元素先放入res数组&…

WAZUH的安装、设置代理

wazuh安装 wazu的安装分为以下两种方式 官方文档&#xff1a;https://wazuh.com/blog/detecting-common-linux-persistence-techniques-with-wazuh/ 1、自定义安装 这种方式就是一步一步的安装 直接参考官方文档&#xff1a; 这里就不详细介绍了 2、直接下载打包好的虚拟机…