如何为简单的 Web 应用程序构建数据库模型并组织 SQL 数据模型

发布于 2025-01-10 02:34:12 字数 504 浏览 0 评论 0原文

我正在开发一个网络应用程序。我有一个关于 SQL 部分的问题。我目前正在创建一个食品评级界面。用户应该能够登录然后对食物进行评分。

目前我使用自定义数据库(用户)作为登录页面。我还使用一个单独的数据库(评论)来进行评论。我当前的数据库结构没有意义。

在附图中,您可以看到这些表,它们目前是单独的数据库,每个数据库只有一张表。我在 VSCode 中使用 MySQL 扩展。

如何将这些表合并到一个数据库中?我正在寻找解决这个问题的一些想法。

最好只在登录时需要用户名,而不必在评级中单独输入(不幸的是仍然是最新的)。

将来,用户在登录后应该被引导到一个页面,他可以在其中选择他的菜肴,然后他应该对其进行评分。每道菜都应该单独保存评级,以区分这一点。

输入图片此处描述

I am working on a web app. I have a question about the SQL parts. I am currently creating a food rating interface. The user should be able to login and then rate the food.

Currently I use a custom database (users) for the login page. I also use a separate database (review) for the reviews. my current database structure makes no sense.

In the attached image you can see the tables, they are currently separate databases with only this one table each. I use MySQL extension in VSCode.

How can I combine the tables into one database? I am looking for some ideas for this problem.

Preferably the username should only be needed for login and not have to be entered separately in the rating (as unfortunately still current).

In the future, the user should be directed after login, to a page where he can select his dish, then he should rate it. Each dish should save the ratings individually, to distinguish this of course.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橙幽之幻 2025-01-17 02:34:12

我建议您使用user表作为评论的参考,并使用表dish来显示每道菜的详细信息。
以下是建议的表定义,可根据您的需求进行微调:

感谢 Mishi 对外键语法的改进,使其更加可移植。

我将表的创建review放在最后,因为一些 SQL 引擎会在我们声明外键时检查表是否存在。

创建表用户
(
uid int 主键,
用户名 varchar(25),
密码 varchar(25),
创建日期
);
创建餐桌菜肴
(
做了 int 主键,
名义 varchar(25),
描述 varchar(250),
最后评级 int
);
创建表审核
(
删除 int 主键,
user_id int ,
盘 ID int ,
用户评级 int ,
user_reveiw varchar(100),
评论日期日期时间,
外键(user_id)引用用户(uid),
外键(dish_id)引用dish(did)
);

db<>fiddle 此处

I suggest that you do use the user table as a reference for reviews, and also a table dish with the details of each dish.
Here are suggested table definitions, to fine-tune to your needs:

Credits to Mishi for the improvement to foreign key syntax to make it more portable.

I've put the creation of the table review last because some SQL engines check that the table exists when we declare a foreign key.

create table users
(
uid int primary key,
username varchar(25),
password varchar(25),
created_at date
);
create table dish
(
did int primary key,
nom varchar(25),
description varchar(250),
last_rating int
);
create table review
(
rid int primary key,
user_id int ,
dish_id int ,
user_rating int ,
user_reveiw varchar(100),
review_date datetime,
foreign key (user_id) references users(uid),
foreign key (dish_id) references dish(did)
);

db<>fiddle here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文