我正在创建一个在线博客网站,对于每篇博文,我希望用户能够创建/编辑/删除他们自己的类别,以便他们可以对他们的帖子进行分类.
对于用户生成的类别,通常认为什么是良好的数据库设计?
这是我提出的表格设计.(这种类型的数据库有名称吗?)
USER_TABLE
user_id(pk),user_name
CATEGORY_TABLE
category_id(pk),category_name
USER_CATEGORIES
user_id(fk),category_id(fk)
谢谢你的帮助.我有信心在这方面有一个帖子,但我无法找到它.如果这是一个骗局请告诉我,我将删除这个问题.
我有一个员工表,员工有兴趣,所以表可以这样设计:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
interest varchar(50),
primary key(id)
);
Run Code Online (Sandbox Code Playgroud)
或这个:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
interest enum('football','basketball','music','table tennis','volleyball'),
primary key(id)
);
Run Code Online (Sandbox Code Playgroud)
利益的数量可以是大约50.
我该如何设计桌子?我应该使用枚举还是其他人?
编辑:
谢谢你的回应.
假设一个人可以是先生或女士或女士
我在PHP中创建了一个下拉列表.
<select name="role">
<option value="Mr.">Mr.</option>
<option value="Ms">Ms</option>
<option value="Madame">Madame</option>
</select>
Run Code Online (Sandbox Code Playgroud)
对于DB部分,我可以这样做:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
role varchar(50),
primary key(id)
);
Run Code Online (Sandbox Code Playgroud)
或这个:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
role enum('Mr.','Ms.','Madame'),
primary key(id)
); …Run Code Online (Sandbox Code Playgroud) 你能描述一下:术语"基数"与数据建模中的"关系"有何不同?
sql database data-modeling relational-database database-schema
我正在评估我正在构建的应用程序使用Azure表存储,我想得到一些建议...
该应用程序是一个针对个人用户的任务管理Web应用程序.这是一个非常简单的应用程序.它有以下实体......
我们还将构建一些我需要考虑的功能/要求......
由于CRUD工作繁重,而且我们确实有一个简单实体列表,因此使用ATS是可行的.但是,我担心更新的交易成本,以及我所描述的查询/过滤是否能得到有效支持.
我们想象数字从小开始(〜数百个账户,每个账户数百或数千个任务),但我们显然希望增加我们的账户.
如果我们选择ATS,最好是......
我知道这是一个很长的帖子,但如果有人对方向有任何想法或想法,我将不胜感激!
我正在使用一个数据模型,该数据模型具有一组类型,这些类型共享一些常见字段,例如Id,Name,Description。更具体地说:
Document类具有属性列表。这些属性在我们的域中,例如String,Integer,DateTime等类型,以及其他“复杂”类型,例如Address以及String,Integer,Address等列表,现在,在我的脑海中,我将对Attribute类进行建模,以便抽象基类(AttributeBase),它包含公共属性(Id,Name,Description),然后在适当的子类中具有更特定的属性。例如,StringAttribute(值),IntegerAttribute(值),AddressAttribute(街道等),StringListAttribute,IntegerListAttribute,AddressListAttribute。我们正在谈论15-20个不同的子类。但是,您将如何在数据库中为这些类建模?您会选择TPH,TPT还是TPC?我已经读过有关选择TPT和EF 4.1并为TPH设置一张Massiv表时性能下降的信息。即使性能更好,听起来也没错。我们正在谈论表中潜在的10000-1000000 ++数据行。
在这些情况下,您是否有第一手经验?我真的很想就这个问题向您请教。
nhibernate data-modeling table-per-type table-per-hierarchy entity-framework-4.1
想象一下,如果您想要建模非分数时间范围,可以是以下任何一种:
"1 hour" (all/any 1 hour period)
"1 hour, starting 1pm") (all/any 1 hour periods that start at 1pm)
"1 hour, starting 1pm, on Wednesdays" (all/any 1 hour periods that start at 1pm on wednesdays)
"1 hour, starting 1pm, on 3rd Wednesday in November"
"1 week, starting the first week in November"
Run Code Online (Sandbox Code Playgroud)
你明白了.另一个目标是轻松有效地计算这些范围的重叠和子集.例如"1小时,从星期三下午1点开始"与"1小时,从下午1点开始"重叠
附加信息:这适用于基线系统中的时间段.我希望基线段具有多个粒度的时间段.与下午1点的任何1小时时段的基线或11月3日星期三下午1点开始的1小时时段的基线一样.
另外一个考虑因素是这些基线周期将存储在无sql存储中,并且以存储中存在的最小粒度有效地细化周期将是很好的.(特定的日 - 周 - 小时期间是否存在?不,周小时怎么样?,不是?如何只是一小时的时间段 - 如果这是有道理的.也许是某种树状的层次结构.
编辑:存储和查询部分可能是最重要的要求.将存储数十亿个时间段,并且需要尽可能快地查找它们(找到最精细的粒度).我很乐意为了提高速度而牺牲完整性.
编辑:考虑更多,以及如何将其存储在数据存储区中,树状结构可能有利于高效查找.我可以沿着树走下去,以获得最好的粒度.
1hr
/
1hr@1pm
/
1hr@1pm@wednesday
/
1hr@1pm@wednesday@November
Run Code Online (Sandbox Code Playgroud)
这就是我想出来的,但我觉得它很弱.我将继续摆弄它并在这里进行更新,但我很想知道是否有人有更聪明的方法对此进行建模.
public class DateRange {
Integer fTimeSpan;
TimeUnit …Run Code Online (Sandbox Code Playgroud) 我正在评估不同的电子商务平台.作为这项工作的一部分,我正在评估我们目前的产品结构如何适合平台.对于像IBM这样的供应商来说,这很简单,因为他们在网上公开了所有材料.我对Hybris电子商务越来越感兴趣.然而,它们没有任何可用的材料.他们有一个我可以访问的私人wiki,但即使他们的数据模型没有任何材料.
Hybris的代表继续坚持认为他们的产品非常灵活,可以创建任何数据模型.我相信它们但仍然存在不应该跨越的界限,例如GUI和报告显示某些数据,而OOB订单管理肯定依赖于某些数据.为了充分利用OOB功能,我创建的数据模型必须遵循Hybris的数据模型.然而,Hybris不允许我看到他们的数据模型,所以我处于鸡和鸡蛋的情况.
现在我的问题是:你是否有在Hybris上建模产品结构的经验,你是如何接近这个的?所有帮助表示赞赏!1!
干杯!
我想在我的流星应用程序中存储每个登录用户的信息,例如他们的个人资料图片,生物等.但是,如果我尝试做像Meteor.user()那样的事情.picLink ="..."; 它似乎在每次后续调用Meteor.user()时被删除.我认为这意味着我不应该直接在用户对象上存储额外的数据.
我能想到的唯一回应是在其中包含一个包含用户数据的单独集合.但这似乎很难与Meteor.users保持一致.有没有更好的办法?
该系统本身很容易理解,但难以实现。而且,出于安全原因,我开始思考如何做到这一点。
我当时想让该功能在前端Firebase脚本中工作,只是在那里做所有事情,例如检查该用户是否已经发布了喜欢/不喜欢,如果用户单击则删除/添加/切换。问题在于此方法的安全性:用户无法创建一个新功能,该功能将不会检查类似消息是否已发布吗?
如果可能的话,该系统应如何工作?现在我的逻辑是:
Clicked like:
locally activate/deactivate like button and remove dislike active class if on
check docs for this user/doc like
`1`? -> remove this doc from collection
`0`? -> switch to `1`, because `0` is dislike
`undefined`? -> create doc with `vote: 1`
change (+1/-1 or +2/-2) the value of post votes fields
Run Code Online (Sandbox Code Playgroud)
一样不喜欢。但是对于这么小的功能,听起来确实很复杂。也许可以在不失去安全级别的情况下,通过用户/投票来进行额外的收集?还是使用http-triggers可以在某种程度上帮助您?在某些类似PHP的语言上,此功能会容易得多,所以我现在很害怕。
database data-modeling firebase google-cloud-platform google-cloud-firestore
我试图将注意力集中在EF Cores拥有的对象上,以及如何控制何时加载某些数据块。
基本上,我有一堆旧的旧表(有些具有约150列),并希望使用根实体和每个表几个拥有的对象对它们进行建模,以实现更好的细分并捆绑某些功能。示例:存在一个“文章”实体,其中包含基础表中最重要字段的约20个属性。该实体还包含一个OwnedObject“ StorageDetails”,包装了更多字段(以及所有与存储内容有关的功能)。
问题:我找不到控制是否应立即加载拥有对象的方法。对于其中的一些,我希望使用Include()显式加载它们。
public class Article : EntityBase
{
public string ArticleNumber { get;set; }
// Owned object, shares article number as key.
public StorageDetails StorageStuff { get; set; }
// An Entity from another table having a foreign key reference
public SomeOtherEntity OtherStuff { get; set; }
}
public class StorageDetails : OwnedObject<Article>
{
public Article Owner { get; set; }
}
// Somewhere during model creation ...
builder.OwnsOne(article => article.StorageStuff);
builder.HasOne(article => article.OtherStuff )
...
Run Code Online (Sandbox Code Playgroud)
使用OwnsOne定义模型并立即加载文章会加载StorageStuff。要加载OtherThing,我必须在查询中将它添加到Inlcude()中,这基本上是我要为拥有的对象实现的功能。 …
data-modeling ×10
sql ×3
database ×2
java ×2
mysql ×2
azure ×1
baseline ×1
c# ×1
datamodel ×1
e-commerce ×1
enums ×1
firebase ×1
hybris ×1
meteor ×1
nhibernate ×1
owned-types ×1
time ×1