SQL的表设计

Pur*_*bob 5 c# sql database-design

我希望你能在这里帮助我 - 我有一个关于设计SQL表的问题.我知道如何写入数据库并使用C#执行查询,但我从来没有真正设计过.所以我想我会尝试一下我们感兴趣的东西.

让我们假设我有一个名为family_surname的表.在该表中,可能有x个家庭成员,例如从2人到22人不等.我怎样才能针对family_surname引用family_members?

所以我会有家庭SURNAME史密斯,琼斯,布朗,泰勒等.

然后史密斯可能有5名成员,我想记录年龄,身高,体重等等.琼斯可能有8名成员 - 可能因家庭而异.

我真的不希望'surname'为每个成员列出8次 - 理想情况下,姓氏行将引用(或以某种方式指向)另一个表中的相应行.那就是我遇到麻烦的地方!

我希望我有道理; 就像我说的,我只是感兴趣,但我想知道如何用两个表做这个.

无论如何,谢谢你的帮助,我很感激.

编辑感谢大家的评论 - 肯定是一些有用的信息,我很欣赏.我正在阅读和研究一些SQL位和peices,到目前为止它非常好.再次感谢,伙计们!

Gor*_*off 3

你问的是一个关于标准化的问题。该表看起来像:

Create table surname (
    SurnameID int,
    Surname varchar(255)
)
Run Code Online (Sandbox Code Playgroud)

其他表将使用 Id 引用姓氏。另外,您可能希望 surnameid 是唯一的、主键并且自动递增。这些是更高级的主题。

也就是说,我不确定姓氏是否是这样分裂的最佳候选者。规范化数据的原因之一是维护关系完整性。在这种情况下,这意味着当您将“Smith”更改为“Jones”时,所有史密斯都会立即更改。我不认为这对你来说是一个问题。