标签: data-modeling

数据库设计——多品类有属性的产品

我正在为供应商设计一个基本的库存系统。
他们有许多不同的产品类别。
每个产品类别都有许多不同的属性。

A - x1、x2、x3、a1、a2、a3;
B - x1、x2、x3、b1、b2、b3、b4;
C - x1、x2、x3、c1、c2;

Laptop - Make, Price, Quantity, Processor, OS, Hard drive, Memory, Video Card etc 
Monitor - Make, Price, Quantity, Size, ContrastRatio, Resolution etc 
Server - Make, Price, Quantity, Processor, OS, Memory, Netowrking etc
Run Code Online (Sandbox Code Playgroud)

设计 1:每个类别的不同表格。
Design2:公用表、属性表。

最好的方法是什么?

sql database-design data-modeling

2
推荐指数
1
解决办法
6649
查看次数

更多表格或更多数据库?

我正在建立一个系统来为我运行的网站的用户托管WordPress博客.现在,事情正在运作相当好一个数据库中,并用自己的预谋表(运行不同的博客user1_posts,user_posts等等).

尽管到目前为止这个工作,但感觉有点混乱.如果这个数据库有4000个表,那会是个问题吗?将它分成400个数据库会更好吗?(或者我错过了一种更聪明的方法吗?)

谢谢!

mysql sql database-design data-modeling

2
推荐指数
1
解决办法
356
查看次数

标签系统的最佳模型

什么是标签系统的最佳模型?例如,一个主题可以有N标签,标签,N也可能与N 线程相关,如果我创建一个表,标签并发布一个表和这个表标签,我有ID of the posts,并且标签,将复制许多记录作为另一个主题添加此标记,这是避免这种情况的最佳方法吗?

在此输入图像描述


@Quentin,问题仍然存在,它将重复表post_tags中的记录

CREATE TABLE IF NOT EXISTS `posts` (
  `pid` bigint(22) NOT NULL AUTO_INCREMENT,
  `author` varchar(25) NOT NULL,
  `content` mediumtext NOT NULL,
  PRIMARY KEY (`pid`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `posts` (`pid`, `author`, `content`) VALUES
(1, 'Andrey Knupp Vital', 'Hello World !');

CREATE TABLE IF NOT EXISTS `tagged` (
  `pid` bigint(22) NOT NULL,
  `tid` bigint(22) NOT NULL,
  PRIMARY KEY (`pid`,`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT …
Run Code Online (Sandbox Code Playgroud)

mysql database tags data-modeling

2
推荐指数
1
解决办法
377
查看次数

如何对树数据结构进行建模,并限制每种节点的出现位置?

在Haskell中,它可以直接为递归树创建数据类型,就像我们使用XML文档一样:

data XML = 
    Text String       -- Text of text node
  | Elem String [XML] -- Tagname; Child nodes
Run Code Online (Sandbox Code Playgroud)

及其相关的折叠:

-- Simple fold (Child trees don't see the surrounding context.)
foldt :: (String -> a) -> (String -> [a] -> a) -> XML -> a
foldt fT fE (Text text) = fT text
foldt fT fE (Elem tagname ts) = fE tagname (map (foldt fT fE) ts)

-- Threaded fold for streaming applications.
-- See http://okmij.org/ftp/papers/XML-parsing.ps.gz
foldts :: (a -> …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming data-modeling gadt

2
推荐指数
1
解决办法
290
查看次数

将表列移动到新表并在 PostgreSQL 中作为外键引用

假设我们有一个带有字段的数据库表

"id", "category", "subcategory", "brand", "name", "description", etc. 
Run Code Online (Sandbox Code Playgroud)

category,subcategorybrand 原始表中的相应列和行创建单独的表成为外键引用的好方法是什么 ?

概述所涉及的操作:

  • 获取原始表的每一列中应该成为外键的所有唯一值;
  • 为那些创建表
  • 在原始表(或副本)中创建外键引用列

在这种情况下,PostgreSQL 数据库是通过 Ruby 应用程序中的 Sequel 访问的,因此可用的接口是命令行、Sequel、PGAdmin 等...

问题:你会怎么做?

ruby sql postgresql data-modeling sequel

2
推荐指数
1
解决办法
1720
查看次数

类别和子类别的类图

我在产品和类别之间有一个简单的关系,我想出了这个图:

在此输入图像描述

  • 可以将产品分配到1个或多个类别
  • 一个类别可以有0个或多个子类别
  • 类别可以包含0或1个父类别
  • 删除类别时,子类别仍然存在.

我想确保图表具有正确的基数,尤其是类别到类别关系.

oop uml data-modeling cardinality

2
推荐指数
1
解决办法
870
查看次数

Cassandra 建模模式

我是 Cassandra 的新手,我一直在尽可能地阅读和尝试。

我遇到过文档说如果你愿意,你可以为每个查询创建 1 个表。因此,如果我有一个“客户”记录,其中包含需要查询的 4 个不同字段,那么我可以创建 4 个不同的表来执行此操作。

然后我遇到了一个称为“批处理”的功能,它似乎说如果我将它们放入批处理中,我可以事务性地进行 4 次更新。

但是我在文档中找不到任何明确的内容将所有部分整合在一起并说“您应该为每个查询创建 1 个表,并且您应该使用 Batch 来保持所有这些查询表同步。这是最佳实践.”

这是最佳做法吗?对于新手,我可以少一点“可以”,多一点“应该”:)

data-modeling cassandra

2
推荐指数
1
解决办法
181
查看次数

如何在 SQL 中有效地计算某些列值的出现次数?

我正在使用 MySQL。

我有一张表service_status

   id | service_id | service_status
   ----------------------------------------------------------------------
   0  | 1001       | download_started
   1  | 1001       | download_started
   2  | 1002       | download_started
   3  | 1002       | download_started
   4  | 1002       | download_failed
   5  | 1003       | download_started
   6  | 1003       | download_failed
   7  | 1003       | something_else
   8  | 1003       | another_thing
Run Code Online (Sandbox Code Playgroud)

我想查询所有service_ids,以及计算 数量download_started和数量的两个附加列download_failed

id | service id | download_started | download_failed
----------------------------------------------------------------------
0  | 1001       | 2                | 0 …
Run Code Online (Sandbox Code Playgroud)

mysql sql data-modeling

2
推荐指数
1
解决办法
3863
查看次数

具有多个多对多关系的数据库建模

我有 3 个实体

  • 工人
  • 学生们
  • 地址

每个工人可以有多个地址。每个学生可以有多个地址。每个地址可以是 x 个学生和 y 个工人的地址。

我的问题是,最好的数据建模是什么样的。仅在一个关联表中实现多对多关系,如下所示:

ID | Address_ID | Worker_ID | Student_ID
Run Code Online (Sandbox Code Playgroud)

其中ID是 PK 并且Worker_IDStudent_ID可以为空

或像这样的 2 个表:

Address_ID | Worker_ID
Run Code Online (Sandbox Code Playgroud)

PK 是Address_IDWorker_ID

Address_ID | Student_ID
Run Code Online (Sandbox Code Playgroud)

PK 是Address_I D 和Student_ID

哪个选项是最好的,也许为什么?

提前致谢。

sql database database-design entity data-modeling

2
推荐指数
1
解决办法
1031
查看次数

如何在 hybris 灵活搜索中排除子类型

在 hybris 中,我创建了ArchivalOrderModel扩展了orderModel

将数据从 OrderModel 移动到 ArchivalOrderModel。(从 OrderModel 中删除的记录)

当我发起查询时

select {pk} from {order}
Run Code Online (Sandbox Code Playgroud)

结果我也得到了 ArchivalOrderModel 的记录。

是否有任何方法可以借助数据建模定义或任何其他存档建议进行限制

data-modeling hybris flexible-search

2
推荐指数
1
解决办法
837
查看次数