我正在为供应商设计一个基本的库存系统。
他们有许多不同的产品类别。
每个产品类别都有许多不同的属性。
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:公用表、属性表。
最好的方法是什么?
我正在建立一个系统来为我运行的网站的用户托管WordPress博客.现在,事情正在运作相当好一个数据库中,并用自己的预谋表(运行不同的博客user1_posts,user_posts等等).
尽管到目前为止这个工作,但感觉有点混乱.如果这个数据库有4000个表,那会是个问题吗?将它分成400个数据库会更好吗?(或者我错过了一种更聪明的方法吗?)
谢谢!
什么是标签系统的最佳模型?例如,一个主题可以有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) 在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) 假设我们有一个带有字段的数据库表
"id", "category", "subcategory", "brand", "name", "description", etc.
Run Code Online (Sandbox Code Playgroud)
为category,subcategory和brand
原始表中的相应列和行创建单独的表成为外键引用的好方法是什么
?
概述所涉及的操作:
在这种情况下,PostgreSQL 数据库是通过 Ruby 应用程序中的 Sequel 访问的,因此可用的接口是命令行、Sequel、PGAdmin 等...
问题:你会怎么做?
我在产品和类别之间有一个简单的关系,我想出了这个图:
我想确保图表具有正确的基数,尤其是类别到类别关系.
我是 Cassandra 的新手,我一直在尽可能地阅读和尝试。
我遇到过文档说如果你愿意,你可以为每个查询创建 1 个表。因此,如果我有一个“客户”记录,其中包含需要查询的 4 个不同字段,那么我可以创建 4 个不同的表来执行此操作。
然后我遇到了一个称为“批处理”的功能,它似乎说如果我将它们放入批处理中,我可以事务性地进行 4 次更新。
但是我在文档中找不到任何明确的内容将所有部分整合在一起并说“您应该为每个查询创建 1 个表,并且您应该使用 Batch 来保持所有这些查询表同步。这是最佳实践.”
这是最佳做法吗?对于新手,我可以少一点“可以”,多一点“应该”:)
我正在使用 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) 我有 3 个实体
每个工人可以有多个地址。每个学生可以有多个地址。每个地址可以是 x 个学生和 y 个工人的地址。
我的问题是,最好的数据建模是什么样的。仅在一个关联表中实现多对多关系,如下所示:
ID | Address_ID | Worker_ID | Student_ID
Run Code Online (Sandbox Code Playgroud)
其中ID是 PK 并且Worker_ID或Student_ID可以为空
或像这样的 2 个表:
Address_ID | Worker_ID
Run Code Online (Sandbox Code Playgroud)
PK 是Address_ID和Worker_ID
和
Address_ID | Student_ID
Run Code Online (Sandbox Code Playgroud)
PK 是Address_I D 和Student_ID
哪个选项是最好的,也许为什么?
提前致谢。
在 hybris 中,我创建了ArchivalOrderModel扩展了orderModel
将数据从 OrderModel 移动到 ArchivalOrderModel。(从 OrderModel 中删除的记录)
当我发起查询时
select {pk} from {order}
Run Code Online (Sandbox Code Playgroud)
结果我也得到了 ArchivalOrderModel 的记录。
是否有任何方法可以借助数据建模定义或任何其他存档建议进行限制