问题标签 [table-structure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
71 浏览

sql-server - 如何使任务双重检查(如何将其存储在数据库中的方式)?

我有一个数据库,可以在不同的表中存储不同类型的任务和更多项目。在许多这些表中(它们的结构不同)我需要一种方法来做到这一点,该项目必须被仔细检查,这意味着该项目不能被“保存”(我的意思是它当然会被保存)在其他人进入程序并确认之前。

什么是确认哪个项目的正确说法:

  1. 这些表中的每一个都应该有一个“IsConfirmed”列,然后当那个人想要确认所有的东西时,程序会遍历所有的表并创建一个未检查项目的列表。
  2. 应该有第三个表,其中包含必须确认的该行的表名和 Id。
  3. 我希望你比上面的两个丑陋的想法更好。
0 投票
4 回答
4364 浏览

php - mySQL 中菜单的表结构

我需要有关表结构的建议。

我需要动态创建菜单。

将有3个以上的菜单。

一些菜单将具有多级结构。

构建菜单表的最佳方式是什么?

  1. 所有菜单都在一张桌子上
  2. 每张桌子应该有一张桌子
  3. 任何其他??

请给我你的经验或动态生成菜单的常见做法。

0 投票
1 回答
955 浏览

sql - MySQL - 对象权限的结构

什么是用户>对象权限的理想结构。

我已经看到了许多有关一般权限的相关帖子,或者用户可以访问哪些部分,其中包含一个users,userGroupsuserGroupRelations或类似的东西。

在我的系统中,可以创建许多不同的对象,并且每个对象都必须能够打开或关闭。例如,以具有组和子组的密码管理器为例。

每个组可以包含一组密码。可以授予用户对任何组的读取、写入、编辑和删除权限。可以在任何时间点创建更多组。

如果有人有权访问某个组,我应该能够让他拥有所有子组的权限,或者将其限制在该组。

我目前的想法是有一个用户表,然后是一个权限表,其列如下:

这在过去是有效的,但我正在构建的新系统需要能够快速扩展,我不确定这是否是最好的结构。这也使得让某人拥有一个组的所有子组权限的想法变得更加困难。

用户/管理员的角色将有一个单独的表,这意味着他们可以更改他们可以控制的组下用户的权限。

那么,作为一个问题,我应该使用上述结构吗?或者有人可以指出我更好的方向吗?


编辑

另一种方法是为每种类型的对象创建一个权限表。

0 投票
5 回答
5179 浏览

mysql - MySQL - 处理这种分层数据的最佳方法?

这是对以下内容的跟进:
MySQL - 是否可以获取层次结构中的所有子项?

我有一个任意深度的邻接列表模型表(我可以将它转换为嵌套集模型

我阅读了有关如何使用嵌套集合模型的 MySQL 数据,尽管执行插入、更新和删除等基本功能似乎变得越来越复杂和非常复杂。

另一个博客展示了如何使用带有邻接列表模型的触发系统来保存将每个对象与其祖先相关联的祖先表。


现在我需要能够返回给定节点的所有子节点的列表,以更改或删除它们。这种层次结构一旦创建就不会一直在变化,但是会有大量的层次结构。

我看到的三种方法是:

  1. 创建了一个存储过程,它将执行返回所有子级的递归查询。

  2. 转换为嵌套集模型,这需要处理复杂性并可能创建一个存储过程来添加、编辑和删除。

  3. 在插入/删除触发器上创建上述祖先表以处理所有数据。

如果还有其他方法我没有探索,请告诉我,我会更新这个列表。

0 投票
2 回答
386 浏览

polymorphic-associations - 单继承还是多态?

我正在编写一个网站,该网站允许用户发布分类广告,其中包含他们销售的不同类型商品的详细字段。但是,我有一个关于最佳数据库模式的问题。

该网站具有许多类别(例如汽车、计算机、相机),并且每个类别的广告都有自己不同的领域。例如,汽车具有门数、品牌、型号和马力等属性,而计算机具有 CPU、RAM、主板型号等属性。

现在因为它们都是列表,所以我正在考虑一种多态方法,为每个不同的类别(计算机、汽车、相机)创建一个父 LISTINGS 表和一个不同的子表。每个子表都有一个listing_id,它将链接回列表表。因此,当获取列表时,它将从 LISTINGS 中获取一行,该行由关联子表中的链接行连接。

现在,这个模式是一个好的设计模式还是有更好的方法来做到这一点?

我考虑过单继承,但很快就打消了这个念头,因为表会变得太大太快,但随后又想到了另一个难题——如果用户对所有列表进行全局搜索,那么这意味着我将不得不查询每个孩子分开表。如果我有超过 100 个不同的类别会发生什么,会不会效率低下?

我还想到了另一种方法,其中有一个定义每个类别中的字段的主表(元表)和一个存储每个列表的字段值的字段表,但这会违反数据库规范化吗?

像 Kijiji 这样的网站是如何做到的?

0 投票
3 回答
8387 浏览

java - 如何在java中获取数据库的表结构?

如何在java中获取数据库的表结构?

0 投票
6 回答
12262 浏览

mysql - 个人消息的表结构

在私人消息中存储用户之间对话的最佳表结构是什么?每个用户都可以向许多收件人发送个人消息。每条消息都有发送者的标志:消息是否被删除 每条消息都有接收者的标志:消息是未读、已读还是已删除 每条消息都可以删除(设置标志“已删除”)

PrivateMessages 的主页应该是这样的:

例如,User1 将 Message1 发送给 User2 和 User3。在私人消息页面上,我必须显示 2 条相同的消息:

  1. 将 Message1 发送给 user2
  2. 将 Message1 发送给 user3

下一步 - User2 回复 Message2,我将在同一页面上看到以下内容:

  1. 从 user2 收到 Message2(回复 Message1)
  2. 将 Message1 发送给 user3

下一步,我回复message3,我看看

  1. 将 Message3 发送给 user2
  2. 将 Message1 发送给 user3

等等。

任何人都可以提供表格结构吗?我正在使用 MySQL 5.5

主要问题。如何仅获取每个对话框的最后一条未删除消息?

UPD。

我需要在当前用户和其他用户之间查看主页对话框列表(使用分页,按日期 DESC 排序)。

0 投票
1 回答
1928 浏览

mysql - 在 SQL 数据库中存储电话号码

我有一个存储手机号码的表

它存储
国家
网络
的其余部分

所以一个移动的例子,或者被屏蔽的是

现在,

Country 有意义地被称为 country
Network 被称为 Network

但是你会怎么称呼其余的?

我正在重新设计数据库,所以我希望尽可能准确地命名它。我可以在驼峰式中使用多个单词。

有任何想法吗?

还,

国家代码只有数字,我相信最多 4 个?
那么我应该使用int类型吗?
同样适用于网络。

其余的呢?

不知道能坚持多久...

0 投票
2 回答
44 浏览

sql - 关于 MySQL 中高效表使用的问题

我希望我的网络应用程序中的用户能够注册不同的“事件”。每个事件都有描述它的东西,例如名称、事件日期、描述和描述事件的人。我应该为每个事件创建一个单独的表吗?或者我应该让事件成为事件表中的行/列?

0 投票
3 回答
84 浏览

sql - SQL - 如何跟踪“简单关系”

我希望有人可以编辑我的标题以更好地描述我的意思,因为我不确切知道这会被称为什么。但是,请考虑以下设置:我想创建一个通知系统,在该系统中向用户显示一条消息,直到他单击“关闭”。然后我需要“记住”该用户已关闭通知,因此我不再向他显示。这是我目前的解决方案

  • users表有一个uid主键和用户信息
  • notifications表有一个nid主键和通知文本
  • notifications_seen有两列的表,uidnid

当有人在通知上单击解除时,我将他们uid和通知存储nidnotifications_seen. 这似乎工作正常,但 phpMyAdmin 有巨大的红色消息告诉我notifications_seen没有索引。但是,这两列都不是唯一的。我真的应该有一个额外的完全无用的列notifications_seen并将其称为主键吗?有一个更好的方法吗?